[英]Handing post parameter with double quotes over multiple forms
如何使用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;
}
它是PHP淘汰的magic_quotes_gpc
功能所不支持的,
或通过放置一些错误的常规输入的“消毒”功能。
无论哪种情况,您都必须找到原因并永远将其关闭。
对于魔术,您可以使用phpinfo()
来查看它的价值。
如果这是魔术引号,并且您无权更改php。 设置,您至少可以清理超全局数组,这应该足够了。 这个网站上有很多代码, 如果php.ini / .htaccess是不可编辑的 ,那么如何删除魔术引号? 例如
在存储数据之前,请使用stripslashes
删除PHP的数据格式。
$text = stripslashes($_POST['data']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.