В качестве стилистического совета вы можете прочитать о синтаксисе HEREDOC . Вы могли бы создать свою форму и присвоить переменную без экранирования:
$form_block = <<<EOL
<input type="hidden" name="op" value="ds">
<form method="post" action="$_SERVER[PHP_SELF]">
<p>Your name<br />
<input name="sender_name" type="text" size=30 value="$_POST[sender_name]" /></p>
<p>Email<br />
<input name="sender_email" type="text" size=30 value="$_POST[sender_email]"/></p>
<p>Message<br />
<textarea name="message" cols=30 rows=5 value="$_POST[message]"></textarea></p>
<input name="submit" type="submit" value="Send This Form" />
</form>
EOF;
Также следует помнить, что слепая вставка предоставленных пользователем данных в форму в том виде, в каком вы есть (sender_name и sender_email), может привести к тривиальным атакам между сайтами. Подумайте, что произойдет, если пользователь заполнил форму и включил двойную кавычку в любое поле, но вызвал ошибку формы другим способом (например, двойная кавычка в sender_name, но оставил sender_email пустым). Двойная кавычка вставляется в форму и преждевременно завершает атрибут «значение» поля ввода.
Чтобы смягчить это, передайте все значения, которые будут вставлены в форму, сначала через htmlspecialchars()
, что будет экранировать любые специальные символы.