这是我的代码:
网址:
http://www.mysite.com/t.php?title=The%20Police%20-%20Don't%20Stand%20So%20Close%20to%20Me%20'86%20-
PHP:
<?php if(!empty($_GET['title'])){ >
<form method="post" action="t.php?done=yes" enctype="multipart/form-data">
<input type="text" name="title"
<?php echo "value=\"".htmlspecialchars($_GET['title'])."\""; ?>
>
<input name="submit" value="Submit" type="submit" />
</form>
<?php } >
<?php if(!empty($_POST['title'])){
echo mysql_real_escape_string($_POST['title']);
// I have to put the string in a database ( I haven't added that part )
} >
如果我按照第一个网址然后提交表单,我会收到此字符串:
The Police - Don\\\'t Stand So Close to Me \\\'86 -
而不是:
The Police - Don't Stand So Close to Me '86 -
为什么?我怎样才能获得最后一个字符串?
由于
修改
我刚刚发现magic_quotes_gpc为ON,因为get_magic_quotes_gpc()返回TRUE。
答案 0 :(得分:1)
可能是因为这个字符串
The Police - Don't Stand So Close to Me '86 -
你的php.ini上的magic_quotes_gpc on
给你qoute escape
The Police - Don\'t Stand So Close to Me \'86 -
然后
echo mysql_real_escape_string($_POST['title']);
转义'
和\
成为
The Police - Don\\\'t Stand So Close to Me \\\'86 -
尝试设置代码
ini_set ( 'magic_quotes_gpc', '0' );
如果没有,您可以通过编码检查并删除斜线
if (get_magic_quotes_gpc()) {
$title = stripslashes($_POST['title']);
}
else {
$title = $_POST['title'];
}
答案 1 :(得分:0)
您能否提供有关此区块的更多信息?
<?php if(!empty($_POST['title'])){
echo mysql_real_escape_string($_POST['title']);
} >
这仅用于调试目的吗?如果是这样,使用mysql_escape_string回应是没有用的,这显然会“破坏”变量的可见值。请在没有此功能的情况下发布回声。
RGDS