2012-05-22 3 views
-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 - 

Почему? Как я могу получить последнюю строку?

Thanks

.

EDIT:

Я только что обнаружил, что magic_quotes_gpc включен, потому что get_magic_quotes_gpc() возвращают TRUE.

+3

Вы можете использовать 'mysql_real_escape_string' для избегайте строки, чтобы помещать в базу данных mysql не 'echo', использовать htmlspecialchars – Musa

+0

Вы эхом отзываетесь на экранированную версию. Просто выделите исходную строку '$ _POST ['title']' для ее проверки и используйте 'htmlspecialchars()' для вывода ее внутри HTML –

+0

Мне нужно поместить строку в базу данных (я еще не добавил эту часть) , – xRobot

ответ

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']); 

е Scape ' и \ стать

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

Try на свой код, чтобы установить

ini_set ('magic_quotes_gpc', '0'); 

Если нет, то вы можете проверить его с помощью кодирования и удалить слэш

if (get_magic_quotes_gpc()) { 
    $title = stripslashes($_POST['title']); 
} 
else { 
    $title = $_POST['title']; 
} 
+0

Я получаю тот же результат :( – xRobot

0

Не могли бы вы предоставить более подробную информацию об этом блоке, пожалуйста?

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

Это только для целей отладки? Если это так, нет смысла эхо с mysql_escape_string, что, очевидно, «искажает» видимое значение вашей переменной. Пожалуйста, опубликуйте эхо без этой функции.

Rgds

+0

Да, это для целей отладки. Мне нужно вставить эту строку в mysql db. – xRobot

+0

, пожалуйста, напишите строку, не связанную с экранированием :-) – Sebas

+0

Неэкранированная строка находится в коде выше. Это: Полиция - не стоит так близко ко мне '86 - – xRobot

Смежные вопросы