我正在使用Doctrine ORM for php和Zend MVC。我有一个mysql数据库。当我插入数据库时,它是转义引号。换句话说,当我进入
时<input name="customer_name" value="Test'ed user"> ...
进入我的表单,并分配给一个学说对象并保存。
当我通过mysql命令行查看数据库时,我得到了
Test\'ed user
有没有办法禁用此功能,还是必须在每个变量上调用stripslashes()
?
答案 0 :(得分:2)
通过查看php.ini或运行magic_quotes_gpc
来检查get_magic_quotes_gpc()
是否已启用。
如果您有权访问php.ini,请将其关闭。否则,您需要使用stripslashes()
删除脚本中的斜杠。
答案 1 :(得分:1)
您可以通过在页面顶部添加类似内容来完全避免magic_quotes_gpc
瘟疫:
if(get_magic_quotes_gpc()) {
if(!function_exists('stripishlashes_all')) {
function stripslashes_all(&$data) {
foreach($data as &$_value) {
if(is_array($_value)) {
stripslashes_all($_value);
}
else {
$_value = stripslashes($_value);
}
}
}
}
stripslashes_all($_REQUEST);
}
当您的代码在无法完全控制的服务器上运行时,或者您计划分发代码时非常有用。