textarea帖子在有或没有“\”的情况下得到不同的结果?
相同的代码在不同的pc上运行,得到不同的结果
我的systerm是xp,我发布textarea并打印它,结果有“\”befror',但是我在其他人的pc上运行它,结果没有返回“\”。
这个不同的结果导致当我插入mysql时,当sql没有“\”时返回错误
为什么会这样?怎么解决?
<pre>
<?php
print_r($_POST);
?>
</pre>
<form method="post">
<textarea name="content" id="" cols="30" rows="10">This is kate's book</textarea>
<input type="submit" />
</form>
在我的电脑中,获取:
this is kate\'s book
在其他人中,得到:
this is kate's book
添加htaccess就可以了
php_flag magic_quotes_gpc 1
答案 0 :(得分:3)
这里的问题来自php.ini中的magic_quotes_gpc
设置。你必须把它关掉:这件事是纯粹的邪恶(并且已弃用)。它会自动“逃避”您的数据。
但是,您仍希望将其转义。最好的方法是使用PDO和准备好的请求。
答案 1 :(得分:1)
您和朋友的计算机之间的php配置可能不同。尝试使用php函数stripslashes。
$var = stripslashes($another_var);