ajax js php, При передаче данных удаляет код
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Если вы столкнулись с тем, что при передаче строки (с 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 ?> кодом"
Только заменено на специальные символы.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.