Гость_Елена
20.03.2013 - 14:15
Пытаюсь записать в бд код страницы с формой подписки, а получаю ошибку:
Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'form[name="SR_form_2_40"]').find('div#sr-preload_').prop('id', 'sr-preload_2_40'' at line 1
Как можно решить проблему?
Valick
20.03.2013 - 14:21
неплохо бы запрос показать
_____________
Стимулятор ~yoomoney - 41001303250491
Гость_Елена
Синтаксическая ошибка, проверить синтаксис, может с кавычками напутали.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Гость_Елена
20.03.2013 - 14:25
if (mysqli_query($db, "UPDATE `user_pages` SET `html_code`='$html_code', `background`='$background', `page_name`='$page_name', `uploaded`='$uploaded' WHERE `page_id`='$page_id' AND `login`='$login'")) {
echo 'Сохранено!';
}
else {
echo 'Ошибка: '.mysqli_error($db);
}
Если $html_code пропустить через
mysqli_real_escape_string, то запрос проходит, но вот меня волнует, не повредит ли он js скрипты на странице?
Valick
20.03.2013 - 14:25
ABC, там скорее всего нет эскейпирования данных
Цитата |
Пытаюсь записать в бд код страницы с формой |
Valick
20.03.2013 - 14:27
Гость_Елена, все записываемые текстовые поля необходимо пропускать через функцию
mysql_real_escape_string()
_____________
Стимулятор ~yoomoney - 41001303250491
Bezdna
20.03.2013 - 14:27
А для чего JS-скрипт вгонять в БД?
Гость_Елена
20.03.2013 - 14:28
Дело в том, что у меня есть ещё php код, который успешно сохраняет код страницы без mysqli_real_escape_string, но, видимо это потому, что там AJAX-отправка и предварительно переменная пропускается через encodeURIComponent().
Гость_Елена
20.03.2013 - 14:30
Bezdna, задумка такая. Пользователь редактирует свои страницы и хранит в БД.
Bezdna
20.03.2013 - 14:33
Цитата (Гость_Елена @ 20.03.2013 - 13:30) |
задумка такая |
Странная задумка. Особенно в вопросе безопасности. Не проще этот код хранить как текст?
Гость_Елена
20.03.2013 - 14:36
Может urlencode() и urldecode() помогут?
И может ли mysqli_real_escape_string навредить коду скрипта?
Я проверил, вроде бы пока всё работает.
Цитата |
Особенно в вопросе безопасности. Не проще этот код хранить как текст? |
А что с безопасностью? Код проходит через htmlspecialchars, ну и сейчас через mysqli_real_escape_string. Доступ к коду может получить только пользователь. PHP здесь не выполнишь.
Гость_Елена
Цитата |
Гость_Елена, все записываемые текстовые поля необходимо пропускать через функцию mysql_real_escape_string() |
Valick правильно подсказал, возможно внутри переменных есть знаки препинания, которые режут запрос:
if (mysqli_query($db, "UPDATE `user_pages` SET `html_code`='".mysqli_real_escape_string($html_code)."',
и так для остальных переменных
Я проверил - Эх Елена..Елена :)
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Гость_Елена
20.03.2013 - 14:55
Цитата |
Я проверил - Эх Елена..Елена  |
Что?
if (mysqli_query($db, "UPDATE `user_pages` SET `html_code`='".mysqli_real_escape_string($html_code)."',
К
mysqli_real_escape_string нужен ещё идентификатор соединения :)
if (mysqli_query($db, "UPDATE `user_pages` SET `html_code`='".mysqli_real_escape_string($db, $html_code)."',
Гость_Елена
20.03.2013 - 15:01
Guest, так
mysqli_real_escape_string уже внутри запроса с идентификатором
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.