0

为了将字符串插入数据库,我在字符串上应用了这个函数:

$string = strip_tags($string);
$string = htmlspecialchars($string);
$string = preg_replace('/\s+/', ' ', $string); // removing multiple spaces :-)
$string = preg_replace('/(?:\s\s+|\n|\t)/', ' ', $string);
$string = mysql_real_escape_string($string);

在我测试应用程序时,在我的本地主机上,我输入:Life's Interesting

并且确切的字符串保存到db(Life's Interesting)中,然后我将我的应用程序上传到真实服务器上,当我输入相同的字符串时,它保存:Life\'s Interesting在数据库中!

为什么这仅发生在服务器上而不是我的本地主机上?我在我的本地主机上使用 Wamp。我需要在服务器上更改什么配置才能将其保存在数据库中?

提前致谢

4

1 回答 1

3

因为magic_quotes_gpc

var_dump(magic_quotes_gpc())

var_dump 在你的两台服务器中都引用了 gpc。你的真实服务器我认为魔术引号是默认启用的。

Magic Quotes 是一个自动将传入数据转义到 PHP 脚本的过程。最好在关闭魔术引号的情况下进行编码,并根据需要在运行时转义数据。

更多阅读PHP 手册 - 魔术引号

于 2012-11-29T08:56:04.250 回答