Обратная косая черта появляется, когда данные выбираются из текстовой области в php - PullRequest
1 голос
/ 04 ноября 2011

Вот что я делаю,

<?php
if(isset($_POST['submit'])){
$text_area= mysqli_real_escape_string($dbc, strip_tags(trim($_POST['text_area'])));
echo $text_area;
}
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<input type="textarea" name="text_area" style="width:280px;height:90px" id="myTextarea"    />

<input type="submit" name="submit" Value="Submit"/>
</form>

Но всякий раз, когда я пытаюсь вставить что-то вроде этого: «Hello World» или «Hello World», выводится: «Hello World \» или \ 'Привет, мир \ "

где я ошибаюсь?

Ответы [ 3 ]

1 голос
/ 04 ноября 2011

Это потому что вы используете функцию mysql-real-escape-string .Используйте функцию stripslashes для ваших данных перед их отображением, чтобы удалить косые черты.

0 голосов
/ 04 ноября 2011

Вы используете mysqli_real_escape_string неправильно - здесь это не имеет смысла.

Не используйте его в этом контексте, и проблема исчезнет.Используйте его только при вводе данных в базу данных.

0 голосов
/ 04 ноября 2011

Кажется, вы выводите значение из метода mysqli_real_escape_string, который экранирует строковое значение для запроса SQL, чтобы избежать SQL-инъекции.Если вы просто хотите вывести что-либо, что было введено в текстовое поле, вы можете просто показать значение из массива $ _POST, но ОСТОРОЖНО, если вы не выполняете никаких проверок, вы легко можете стать жертвой того, кто вводит некоторый JavaScript и т. Д.он появляется на странице.

Так, например, для вывода только чистого текста, отправленного на сервер.

trim($_POST['text_area'])

, а затем вы можете снова вызвать mysqli_real_escape_string при построении запроса длясделать строку безопасной и избежать некоторых распространенных атак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...