PHP $ _GET撇号

时间:2010-11-28 10:19:40

标签: php html

  

可能重复:
  “slash before every quote” problem

嗨,我正在尝试使用$ _GET将文本框的内容发送到另一个php文档。但每当我尝试使用单引号(')或双引号(“)时,文本都会被接收为\'或\”。当我尝试使用str_replace时,我收到一个php错误。我需要使用$ _GET而不是$ _POST,因为我需要能够为页面添加书签。

这是代码: HTML文档:

<form action="result.php" method="get">
<input type="text" name="code" size="70" />
<input type="submit" />
</form>

PHP文档:

<?php
echo $_GET["code"];
?>

2 个答案:

答案 0 :(得分:3)

禁用魔术引号。在页面顶部,您可以这样编码:

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>

有更好的选择。请点击这里http://www.php.net/manual/en/security.magicquotes.disabling.php

答案 1 :(得分:1)

Disable magic quotes在您的服务器上。

(除非您在$_GET[]中循环并使用类似addslashes()的内容)。

您可以通过运行...

判断是否启用了魔术引号
var_dump(get_magic_quotes_gpc());