如何用POST交出双引号?每当我尝试它时,他第一次给我\'
,第二次给\\\'\\\
,依此类推。我用str_replace
尝试了它,但它只适用于部分。有没有办法纠正处理这个?
编辑:
禁用magic_quotes_gpc
后,它仍无法100%正常工作。我的第一个表单有一个隐藏的输入字段。它具有值
text 'textinquotes'
每post
这个值被提交给另一个PHP脚本。如果我输出变量我得
text \'textinquotes\'
如果用户忘记填写字段,我会根据post
将值提交给另一个PHP脚本。在这个php脚本中,我创建了一个get
,其中包含用户输入其值的php脚本的参数。在这种情况下,我得到
text \\\'textinquotes\\\'
如果用户输入的所有内容都正确,我会写一封电子邮件并将其存储在数据库中。在我收到的电子邮件中
text \'textinquotes\'
在数据库中我得到了
text 'textinquotes'
。
我在做什么仍然错了?
为了创建get
,我有以下代码:
$red = $referer."?error=1";
foreach($post as $post_key => $post_value) {
$red .= "&".$post_key."=".$post_value;
}
答案 0 :(得分:1)
它是由PHP添加的已弃用的magic_quotes_gpc
功能,
或者通过一些错误的一般输入“消毒”功能。
在任何一种情况下,你必须找到原因并永远关闭它。
对于魔法图表,您可以使用phpinfo()
来查看它的值。
如果它是魔术引号,你就没有能力改变php。设置,你可以至少清理超全局数组,这应该足够了。 Thare是这个网站上的许多代码,例如How to remove magic quotes if php.ini/.htaccess are not editable?
答案 1 :(得分:-1)
在存储之前,使用stripslashes
删除PHP的数据格式。
$text = stripslashes($_POST['data']);