Как правильно кодировать HTML-теги для публикации, используя <form> - PullRequest
0 голосов
/ 18 октября 2019

Вопрос: Как правильно разместить HTML-код с помощью формы POST?

Я создал форму, которая принимает HTML-код в качестве входных данных в textarea

 <form action="create_html_document.php" method="POST">
    <textarea name="provided_html"></textarea>
    <input type="submit" value="Create">
 </form>

Размещенный HTML-код теряет все свои открывающие теги, когда var_dump редактируется в скрипте create_html_document.php.

Обратите внимание, я фильтрую ввод, используя строку ниже, но этовсе еще происходит, если я опускаю строку:

$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

Когда я var_dump($_POST['provided_html']); в файле create_html_document.php, я замечаю, что все HTML-теги открытие теперьотсутствует и заменяется на \r или \n, но содержимое внутри них все еще там, как и закрывающие теги.

Вот пример ввода, который я пробовал:

<!doctype html>
<html>
  <head>
  </head>
  <body>
    Hello Everyone
  </body>
</html>

Это становится

"\r\n\r\n \r\n <\/head>\r\n \r\n Hello Everyone\r\n <\/body>\r\n<\/html>\r\n"

Нужно ли кодировать html-код перед его публикацией, а затем декодировать перед сохранением на моем сервере? Или, может быть, есть специальный тип формы, о котором я не знаю, который будет делать это автоматически. Так что возникает вопрос:

Как эффективно разместить HTML-код с помощью формы, не теряя теги?

1 Ответ

1 голос
/ 18 октября 2019

Если вы используете PHP для размещения html, , может быть, это поможет? В нем говорится, что вы можете использовать htmlspacialchars (), например:

htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...