Здравствуйте.
Суть вопроса: в админке движка необходимо сделать поле, <textarea name="js_field">
в которое администратор будет добавлять произвольный js-код (например, код яндекс метрики, или слайдера, или т.д.). Этот код должен добавляться в таблицу базы mySQL, чтобы потом выводиться в виде php-переменной в темплейте шаблона.
Проблема в том, что когда я пишу в это поле произвольный текст, или html, то добавление происходит нормально. Но когда пишу туда js-код, ничего не добавляется.
Вот пример кода, который я пытаюсь вставить
$('#myCarousel').carousel({ interval: 40000 });
$('.carousel .item').each(function() {
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
if (next.next().length > 0) {
next.next().children(':first-child').clone().appendTo($(this)).addClass('rightest');
} else {
$(this).siblings(':first').children(':first-child').clone().appendTo($(this));
}
});
В чём проблема? Здесь недопустимые символы, или что? Спасибо.
UPD Хотя если я вставляю этот код в ячейку напрямую через phpMyAdmin, то всё нормально проходит...
Приветствую. Если backend часть у Вас на PHP, то заэкранируйте спец символы Вашей строки методом addslashes
Или даже лучше mysql_real_escape_string
Вы также можете воспользоваться данным методом:
<?php
$jscode = "here your jscode";
$encode_js = htmlEntities($jscode, ENT_QUOTES);
Преобразует все спецсимволы в вашем коде в html сущности, а также используется «ENT_QUOTES», чтобы гарантировать, что XSS невозможно, и ваше приложение безопасно.
Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode(). Более подробно вы можете почитать: http://php.net/manual/ru/function.htmlentities.php#99896
Не используйте mysql_real_escape_string. Внимание Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Альтернативы для данной функции:
mysqli_real_escape_string() — Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
PDO::quote() — заключает строку в кавычки (если требуется) и экранирует специальные символы внутри строки подходящим для драйвера способом.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, написал плагин для хром, вроде доступ из под него к DOM дереву страницы естьALERT с помощью jQuery появляется, но никак не могу, сменить...
Вот пример с иcпользованием функции push,мне нужно использовать альтернативный вариант добавления элемента в пустой массив