2013-05-30 3 views
1

Я использую PHP для хранения некоторых переменных сеанса для отслеживания того, что пользователи вводят в форму поиска, тогда мы можем их восстановить, если им нужно снова начать поиск. Все это хорошо работает, за исключением следующих.Ввод текста в формате HTML Содержит цитаты с кодом

Пользователи могут обернуть строку поиска двойными кавычками, которые будут выполнять другой тип поиска в этом поле (точное совпадение). Если пользователь вводит текст, как это в один из поля поиска текста:

«состояние сердца»

в Seach работ и значение сохраняется в переменной сессии PHP, но когда мы пришли, чтобы восстановить его, делая поиск снова не удался. Вот код для восстановления ввода текста:

<input type="text" id="condition" name="condition" value="<?php echo $conditionSearchValue; ?>"> 

Я соберу кавычки двойные вызывают проблемы, так как это будет:

<input type="text" id="condition" name="condition" value=""heart condition""> 

Есть ли способ восстановить вход с кавычками что я не знаю?

Благодаря

ответ

1
<input type="text" id="condition" name="condition" value="<?php print htmlentities($conditionSearchValue, ENT_QUOTES); ?>"> 

Больше информации о htmlentities в документации here.

+0

Используйте [htmlspecialchars ($ string, ENT_QUOTES, 'utf-8')] (http://php.net/manual/en/function.htmlspecialchars.php) для этого. – Xeoncross

+0

Почему? Это лучше? – Saturnix

+0

Да, он кодирует только те 5 символов, которые имеют важное значение в документах HTML. Htmlentities пытается конвертировать гораздо больше. – Xeoncross

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