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