-1

これは私のコードです:

URL:

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 )
 } >

最初の URL に従ってフォームを送信すると、次の文字列が返されます。

The Police - Don\\\'t Stand So Close to Me \\\'86 -

それ以外の:

The Police - Don't Stand So Close to Me '86 -

なんで ?最後の文字列を取得するにはどうすればよいですか?

ありがとう

.

編集:

get_magic_quotes_gpc() が TRUE を返すため、magic_quotes_gpc が ON であることを発見しました。

4

2 に答える 2

1

この文字列が原因かもしれません

The Police - Don't Stand So Close to Me '86 -

magic_quotes_gpc onあなたのphp.iniでqouteエスケープを与える

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'];
}
于 2012-05-22T17:47:13.213 に答える
0

このブロックに関する詳細情報を提供していただけますか?

<?php if(!empty($_POST['title'])){ 
echo mysql_real_escape_string($_POST['title']);
 } >

これはデバッグ目的のみですか? その場合、mysql_escape_string でエコーする必要はありません。これは明らかに変数の可視値を「破損」させます。この機能なしでエコーを投稿してください。

rgds

于 2012-05-22T17:41:48.267 に答える