Как я могу предотвратить добавление \ из формы ввода? - PullRequest
1 голос
/ 07 февраля 2011

HTML-форма принимает ввод textarea, и я использую значение $ _POST, чтобы поместить значение ввода в textarea, когда я его отображаю.Например.

<html>
<?php if($_POST['input'){
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"><?=$_POST['input']?></textarea>
<input type="submit" value="Test it">
</form>
<?php
} else {
?>
Please copy in a text of your choice
<br /><br />
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"></textarea>
<input type="submit" value="Test it">
</form>
</html>

Все отлично работает, за исключением того, что обратная косая черта '\' добавляется в каждую одинарную кавычку и двойные кавычки.Как настроить некоторые параметры, чтобы предотвратить добавление обратной косой черты?

Ответы [ 3 ]

2 голосов
/ 12 декабря 2012

После долгих поисков я решил эту проблему так:

На странице, где вы хотите отобразить текстовое содержимое, просто добавьте это

< ? php echo stripslashes($shortcode_name) ? > 

Конечно, вам нужно заменить $shortcode_name своим шорткодом. Это все. РЕШИТЬ

2 голосов
/ 07 февраля 2011

Отключить магические кавычки - см. http://php.net/manual/en/security.magicquotes.php - если вы находитесь на общем хостинге, и ваш хостер глуп и не хочет / позволяет вам изменить его (см. Эту страницу, чтобы узнать, почему это глупо), используйтеstripslashes() для каждого значения, которое вы получаете из массивов $_GET, $_POST, $_COOKIE.

В примечании, не выводите вводимые значения обратно (включая PHP_SELF) в вывод HTML, не отправляя их через htmlspecialchars(), или у вас есть проблемы с безопасностью.См. http://en.wikipedia.org/wiki/Cross-site_scripting для получения дополнительной информации.

0 голосов
/ 07 февраля 2011

Вы также можете использовать полоски .

<textarea name="input" cols="60" rows="20"><?php echo stripslashes($_POST['input']); ?></textarea>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...