PHP向POST数据添加反斜杠

时间:2014-03-05 16:15:51

标签: php

我有一个提交到数据库的表单。但在进入数据库之前,提交的数据将在屏幕上输出。目前,如果我有。 “Mike's”提交了输出“Mike \'s”

我已经尝试了以下代码,看看它是否是魔术行情,但这没有帮助

if(  ( function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc() ) || ini_get('magic_quotes_sybase')  ){
    foreach($_GET as $k => $v) $_GET[$k] = stripslashes($v);
    foreach($_POST as $k => $v) $_POST[$k] = stripslashes($v);
    foreach($_COOKIE as $k => $v) $_COOKIE[$k] = stripslashes($v);
}

有人可以建议我应该寻找什么吗?

4 个答案:

答案 0 :(得分:0)

注意:清理字符串

<?php

    $mike = "Mike's";

    echo filter_var($mike, FILTER_SANITIZE_STRING);

?>

答案 1 :(得分:0)

您可能会使用输出到屏幕的代码。例如,如果您使用var_export(),则可能会在撇号上看到字符转义。

答案 2 :(得分:0)

尽管看起来像一个常数,但编辑$ _POST should work。然后,你的代码也不适合我。

这有效:

function getReq($key){
    return isset($_REQUEST[$key]) ? stripslashes($_REQUEST[$key]) : "";
}

我还没有找到为什么PHP(我的情况下WAMPSERVER 2.0为5.3.0)似乎神奇地改变POST数据而get_magic_quotes_gpc()返回0,并且坦率地说不要浪费更多时间在它的脏内脏上

答案 3 :(得分:0)

这些年来,回答似乎很愚蠢,但我发现您的帖子很活跃,所以我会尝试的。

首先尝试使用此功能stripslashes()。 Doc:(https://www.php.net/manual/en/function.stripslashes.php

这不行。

您是直接从$ _POST变量中显示数据还是从数据库中检索数据? 它可能会按原样保存在数据库中,这意味着存在UTF8转换问题。

我的回答很简短,除非您需要,否则不希望添加更多不必要的信息。