Я отправляю данные из формы, где текстовое поле содержит HTML-теги. На стороне PHP я не вижу их, используя:
echo "<pre>";
print_r( $_POST );
echo "</pre>";
exit();
Я получил:
Куда делись теги абзаца?
В исходном коде они явно пропали:
<pre>Array
(
[mode] => save_product
[id] => 1
[title] => Banana Shake
[categoryid] => 1
[serving] => 34.50
[orderby] => 10
[intro] => Intro
[instructions] => Empty contents of packet into a shaker or blender, add 200-240ml of cold water and shake/mix until fully dissolved.
Consume within 10 minutes for full nutritional benefit.
...</pre>
РЕДАКТИРОВАТЬ
Я использую движок x-Cart для манипулирования данными, может быть, x-Cart удаляет эти теги.
Решением было установить доверенные переменные в начале скрипта следующим образом:
define('USE_TRUSTED_POST_VARIABLES', 1);
$trusted_post_variables = array('intro', 'instructions');
Таким образом, x-cart не будет удалять теги.
Спасибо за помощь и извините за сумбур.
РЕДАКТИРОВАТЬ: этот ответ написан при условии, что вы не используете фреймворк или другой метод, который удаляет теги HTML из вашего поста.
Ваши теги абзаца все еще там. Поскольку вы печатаете их в браузере, браузер интерпретирует их как реальные <p>
теги. Если бы вы посмотрели на исходный код страницы, вы бы увидели теги. (Google «<your browser name>
см. страницу «Источник» для получения инструкций о том, как это сделать.)
Вы также можете использовать htmlentities($_POST['instructions])
или же htmlspecialchars($_POST['instructions])
изменить теги HTML на объекты, что приведет к их печати в браузере.