在共享服务器上有魔术引用的***是痛苦的,我放弃上传另一个php.ini来覆盖共享主机php.ini,因为那时其他问题发生了,(配置中的PDO但是没有加载等等)我尝试了.htaccess,这给出了500错误。
所以我发现这个解决方案非常好并且效果很好 How to turn off magic quotes on shared hosting?
if ( in_array( strtolower( ini_get( 'magic_quotes_gpc' ) ), array( '1', 'on' ) ) )
{
$_POST = array_map( 'stripslashes', $_POST );
$_GET = array_map( 'stripslashes', $_GET );
$_COOKIE = array_map( 'stripslashes', $_COOKIE );
}
直到我开始将数组发布到服务器
<select name="gropu[]">
<option value="1">2</option>
<option value="2">1</option>
<option value="3">3</option>
</select>
然后我有以下错误
Warning: stripslashes() expects parameter 1 to be string, array given in index.php on line 18
请帮助我,在本地主机上开发一些正常的东西时真的很烦我,一旦上传到服务器就错了......
答案 0 :(得分:1)
我通常在初始化时运行它:
// attempt to disable 'magic quotes' at runtime
@ini_set('magic_quotes_runtime', 0);
@ini_set('magic_quotes_sybase', 0);
// strip slashes if that didn't work
if(get_magic_quotes_gpc()){
function _strip_slashes_ref(&$var){
$var = stripslashes($var);
}
array_walk_recursive($_POST, '_strip_slashes_ref');
array_walk_recursive($_GET, '_strip_slashes_ref');
array_walk_recursive($_COOKIE, '_strip_slashes_ref');
array_walk_recursive($_REQUEST, '_strip_slashes_ref');
}
魔术引号在5.4中删除,因此您可能只想在以下情况下执行此操作:
version_compare(PHP_VERSION, '5.4.0') < 0