2011-10-31 103 views
1

“我有做的PHP处理方式经常发生的问题:人物'"总是得到与\逃脱
这似乎甚至在数据获取到PHP的情况发生,在$_POST阵列。
所以,当我在表格中插入' " \,并用PHP打印staight了,我得到\' \" \\
是什么导致了这一点,有什么解决方案呢?

+0

PHP应该取消转义这些。你在哪里碰到它的错误? –

+0

@ DanielA.White基本上,当我从'$ _POST''echo'这个值时,我得到了打印在我的页面上的\ –

回答

4

你有magic_quotes启用在你的服务器上。

var_dump(get_magic_quotes_gpc())来看看自己。如果它打印1,它们被启用。

Disable them和句柄在需要的情况下逃脱你自己。

+2

这是正确的。魔术引号现在不再使用,并且很可能会在其他PHP版本中删除,所以不要依赖魔术引号。另外,魔术引号通常会产生更多的问题,然后解决。 –

+0

@ Hikaru-Shindo @alex谢谢你的回答。恐怕我现在实际上无法禁用它们,尽管我会牢记您的链接。直到我与我的服务器管理员一起解决了问题,我将使用'stripslashes()' –

+0

您可以使用[set_magic_quotes_runtime()](http://www.php.net/manual/en/function.set-magic -quotes-runtime.php)。 –

2

检查你的php.ini,它听起来像magic_quotes_gpc设置为On。这将导致自动转义行为。将其设置为Off可禁用此行为。

2
$_POST = array_map("stripslashes", $_POST);