#html #post
#HTML #Публикация
Вопрос:
Мне нужно отправить форму на PHP, но одно из полей содержит HTML.
Когда он находится в форме, все в порядке, и он покажет:
<input id="addNote" value="<div class="line">This is my line</div>"/>
Однако, когда я ОТПРАВЛЯЮ его на сервер, теги HTML удаляются, поэтому он отображается как «Это моя строка». Что мне нужно сделать, чтобы убедиться, что теги не удаляются?
Спасибо!
Комментарии:
1. Кодирование с использованием escape-символов.
2. Покажите свой серверный скрипт. Кроме того, ваш код выглядит не так. Недопустимое цитирование нарушит ваш HTML-код.
3. Кодирование, даже HTML-кодирование, не для всех. Вы не можете опубликовать html-тег и его содержимое, просто используя
<input>
и<form>
.4. Похоже, что ваша PHP-сторона удаляет HTML-теги (remove_tags), на самом деле это не HTML-код, и он не имеет ничего общего с вашей отправкой, посмотрите на код, улавливающий то, что вы бросаете.
Ответ №1:
При встраивании html в html вы должны кодировать метасимволы HTML, чтобы их нельзя было неправильно интерпретировать:
<input id="addNote" value="amp;<div class=amp;quot;lineamp;quot;amp;>This is my lineamp;</divamp;>" />
Это особенно верно для "
символов, поскольку они нарушают форму для синтаксического анализатора. например
<input ... value="<div class="line" .... />
^---
Указанная цитата будет переведена как ЗАВЕРШАЮЩАЯ value=
часть и line"
являющаяся началом какого-либо другого нестандартного / неизвестного атрибута тега.
Ответ №2:
<input id="addNote" value="<div class="line">This is my line</div>"/>
не работает вообще!
Поскольку вы используете "
для ограничения значения поля ввода, у вас есть два варианта:
-
Измените
"
символ на'
: Это моя строка’/> -
Замените кавычки (
"
) внутри значения наamp;quot;
: Это моя строка»/>
Однако все это не имеет значения, если ваш PHP-скрипт удаляет HTML-теги…
Ответ №3:
в вашем файле .php используйте это —
echo htmlentities($_POST['addNote']);
и в вашем HTML-файле используйте одинарные кавычки.
<input id="addNote" name="addNote" value="<div class='line'>This is my line</div>"/>