我有一个提交到数据库的表单。但在进入数据库之前,提交的数据将在屏幕上输出。目前,如果我有。 “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);
}
有人可以建议我应该寻找什么吗?
答案 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转换问题。
我的回答很简短,除非您需要,否则不希望添加更多不必要的信息。