如何正确保存此字符串?

时间:2012-05-22 17:37:22

标签: php

这是我的代码:

网址:

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。

2 个答案:

答案 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