在多个表单上使用双引号处理post参数

时间:2011-11-09 16:53:26

标签: php html forms post parameters

如何用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;
}

2 个答案:

答案 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']);