ajax js php, При передаче данных удаляет код
Если вы столкнулись с тем, что при передаче строки (с php кодом - <?php ?>), ajax запросом код удаляется, то в данной статье можно посмотреть и ознакомиться с преложенным вариантом решения проблемы.
О проблеме:
Вы могли использовать текстовый редактор (к примеру такой как ckeditor, sceditor, wysibb и другие) или к примеру просто textarea. Заполнили поле php кодом с открывающего тега или закрывающего тега:
<?php ?>И отправили данные на php сервер, но php принял пустую строку.
Решение:
Одно из решений, которое нашел я это:
При передачи данных на стороне Js используем метод btoa для конвертации данных в base64 стандарт кодирования.
Если вам нужно работать в том числе и с utf-8 то:
let text = btoa(unescape(encodeURIComponent("Наш текст с <?php ?> кодом")));Если без, то достаточно
let text = btoa("<?php ?>");И передаем данные с помощью ajax.
$.ajax({
url: "/your/url", // Ваш Url
data: {
'text': text,
}
});На стороне php:
Декодируем данные из base64 обратно в строку.
$decode = base64_decode(Данные из POST запроса);И преобразуем специальные символы в html сущности:
$text = htmlspecialchars($decode);В результате получаем:
string(46) "Наш текст с <?php ?> кодом"
Только заменено на специальные символы.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.