Использование htmlspecialchars() с текстовым полем

У меня есть текстовое поле с пользовательским вводом на странице 1. Его содержимое хранится в переменной сеанса на странице 2. Теперь я хочу добавить кнопку «Назад» на странице 2. Должен ли я использовать htmlspecialchars() перед вставкой сеанса переменная обратно в текстовое поле? Если да, что мне делать с вводом " или "? Я думаю, html_entity_decode(htmlspecialchars($text)) не имеет смысла, не так ли?

Большое спасибо за твою помощь!

РЕДАКТИРОВАТЬ:

Вернувшись на страницу 1, я использую jQuery для заполнения текстового поля. В настоящее время я использую

var usertext = <?php echo htmlspecialchars($_SESSION['text'], ENT_QUOTES); ?>;
$('#textbox').val(usertext);

Делая это, я, к сожалению, не получаю точный пользовательский ввод (если такие символы, как " или ', вставляются пользователем).


person Alexander    schedule 04.03.2014    source источник


Ответы (1)


Должен ли я использовать htmlspecialchars() перед вставкой переменной сеанса обратно в текстовое поле?

Если вы хотите вставить в текстовое поле с помощью jQuery, вам нужно где-то сохранить значение на странице. например

<body data-text-value="<?php echo htmlspecialchars($_SESSION['text']) ?>">

Затем, чтобы вставить его в текстовое поле с помощью jQuery:

$('#textbox').val($('body').data('text-value'));
person SilverlightFox    schedule 04.03.2014
comment
Спасибо за ваш быстрый ответ. Я отредактировал свой вопрос выше. Это правильный способ сделать это? - person Alexander; 04.03.2014
comment
Нет, вы можете использовать только htmlspecialchars для вставки в html, а не в Javascript. - person SilverlightFox; 04.03.2014
comment
Значит, я бы просто сделал это? var usertext = ‹?php echo $_SESSION['текст']; ?›; $('#textbox').val(usertext); Это безопасно? Еще раз спасибо. - person Alexander; 04.03.2014
comment
Да, но мне нужно сделать это с помощью Javascript. - person Alexander; 04.03.2014
comment
Я не совсем понимаю, почему вы не можете вставлять непосредственно в HTML-код страницы, однако я обновил свой ответ, чтобы узнать, как это сделать безопасно. - person SilverlightFox; 04.03.2014
comment
Мне нужен jQuery, потому что мои поля ввода генерируются динамически. Теперь я храню свои переменные сеанса в скрытых полях ввода (которые не генерируются динамически), и htmlspecialchars работает нормально. Большое спасибо за этот совет. - person Alexander; 05.03.2014