我已将我的网站移动到新服务器,我注意到从数据库返回的带有引号的字符串会自动使用反斜杠进行转义,所以我在HTML out输出\'
中出现了有一个引用 - 我想知道是什么导致这个,一个PHP指令?
PHP或其他任何指令会导致这种情况?
感谢大家的帮助
答案 0 :(得分:2)
魔术引号http://php.net/manual/en/security.magicquotes.php
启用时,所有'(单引号),“(双引号),\(反斜杠)和NULL字符都会自动使用反斜杠进行转义。这与addslashes()相同。
禁用:
示例#1禁用魔术引号服务器端
在php.ini中将这些指令的值设置为Off的示例。有关其他详细信息,请阅读标题为“如何更改配置设置”的手册部分。
; Magic quotes
;
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off
如果访问服务器配置不可用,则还可以选择使用.htaccess。例如: php_flag magic_quotes_gpc关闭
答案 1 :(得分:1)
更好地使用:var_dump(ini_get('magic_quotes_gpc'));
这将导致:string(1)“1”如果启用,或者字符串(0)“”如果禁用。
我怀疑你会得到你脚本中显示的第一个选项,所以你可能想要包括这个:
php_value magic_quotes_gpc off
php_value magic_quotes_runtime off
在.htaccess文件中。假设您的主机允许覆盖.htaccess,这应该没问题。