PHP: снова вывести отправленный текст формы в скрытое поле ввода для отправки

Я создаю HTML-форму (для отправки обычного текстового электронного письма, используя Swift Mailer ... но это сейчас не важно), использую серверную часть PHP, где я хочу отобразить текстовый ввод пользователя, чтобы он окончательно подтвердил перед фактической отправкой электронная почта.

я использую nl2br(htmlspecialchars()) для безопасного отображения ввода в поле формы пользователя, а затем необходимо вывести этот ввод в <input type="hidden" ../> поле формы для повторной отправки для создания электронного письма.

Тело электронной почты, очевидно, может содержать всевозможные потенциально опасные символы, такие как одинарные и двойные кавычки, амперсанды, символы "меньше" и "больше".

В контексте моего поля ввода я прав, думая, что моя единственная (?) Проблема заключается в том, чтобы форма заключалась в кавычки value=".." (Я обычно использую двойные кавычки) и любые символы кавычек во входной строке не конфликтуют друг с другом? Есть ли функция PHP по аналогии с htmlspecialchars что будет экранировать кавычки по мере необходимости? Я не хочу преобразовывать что-либо в объекты HTML, поскольку электронное письмо, которое я буду отправлять, будет простым текстом.

2 ответа

После гораздо большего прочтения руководства по PHP, похоже, что я могу использовать htmlspecialchars($text, ENT_QUOTES) безопасно закодировать мой текст для поля формы, а затем использовать ("относительно" новая соответствующая обратная функция) htmlspecialchars_decode($text, ENT_QUOTES) для безопасного преобразования HTML-сущностей обратно в обычные символы при создании текстового сообщения электронной почты.

Вы должны использовать функцию String addslashes( $str ) http://php.net/manual/fr/function.addslashes.php

Другие вопросы по тегам