Добрый вечер (если он добрый),
Проблема возникла.
На моём хостинег (а это BlueHost.com) на моих друпалах (а там у меня несколько установок) при редактировании тела ноуда, при сохранении в базе стал друпал добавлять обратную наклонную строку перед ковычкой.
То есть пишешь в текста страницы что-то, содержащее ",
а потом смотришь в phpMyAdmin, а в базе она уже не ", а вовсе 2 символа - \".
Начинаешь редактироварить текст через друпал по-новой, сохраняешь в базе - тут тебе уже и \\".
Короче число паразитных символов \ возрастает с сохранением.
Если руками залезть в базу, то, конечно, всё это можно повычистить - но это ж не жизнь.
Вот проклятие! От этого в тело страницы ни линки нельзя вставить ни куски кода, короче - ужас.
Обнаружил это сегодня, а раньше (пару дней назад) всё работало.
Причём этот эффект виден и на старых инсталляциях друпала (и 6 и 7) на моём хостинге, и на новой, только что установленной для проверки версии (7.12).
Но - там же на сервере вордпресс работает нормально - сохраняет кавычку как кавычку, то есть драйвер PHP-MySQL наверное ни при чём (или причём?).
Много месяцев всё работало. Несколько установок нормально всё сохраняли в базе.
Как с этим бороться?
Было у кого такое?
С уважением, Олег
Комментарии
Сомнительно что это друпал, так как в друпале парадигма - вставлять в БД как есть
кстати да... может привыводе добавляется? А потом уже сохраняется с бэкслешем...?
т.е. не при выводе, а при открытии на редакутирования...
ЗЫ.. чет мне кажется, какойто визивиг-редактор... у вас кстати какой?
Спасибо за ответы, но -
1) Редактора никакого. Вернее был на некоторых инсталляциях CKEditor, но я его повалил уже. Что с ним что без него - эффект один и тот же.
Да, к стати - что Full HTML, что PHP code и что в прочих режимах тот же эффект - та же проблема.
2) Не при выводе проблема, при сохранении в базу.
Ещё раз - пишешь в теле ноуда что-нибудь с кавычкой - сразу после этого идёш в базу и там, в базе видно, что текст уже с бэкслэшем перед кавычкой.
3) Я далёк от этого PHP. Как оно у него устроено - при коннекте к базе?
Сначала принимаем параметры по HTTP POST, потом друпал их парсит,
потом, я, так вижу, после, ниже слоем есть куски кода в самом друпале для работы с базой -
потом что идёт - нативный драйвер для доступа из PHP к MySQL?
Как устроен PHP - все инсталляции и друпала и вордпресса и пр - они используют тот же самый, для всех установленный драйвер?
Или там есть ещё какой-то слой?
Если проблема в PHP-MySQL драйвере, почему же тогда вордпресс сохраняет без бэкслэша перед кавычкой?
На домашнем ПК всё без проблем - и было и осталось.
Беда в том, что хостинг дешёвеньктй и мне там не дадут поменять драйвера или как-то глубоко покопаться.
На саппорт я им написал, конечно, но они сказали что в течении 24 часов рассмотрят...
какие модули присутствуют на всех сайтах, сохраняющих кавычки с бэкслэшем?
кстати... от браузера это не зависит?.. разные браузеры.. разные компы... пробовали?
Причём тут это? Самая вероятная версия была озвучена в другом топике - magic quotes
Кто может дать линк на этот самый "magic quotes" - это что, это где?
это в php.ini
Спасибо за идею - про php.ini.
Читаю описание краткое - что такое magic_quotes_gpc.
Очень похоже на то, что надо.
Вопросы-
1) Если на хостинге установлен PHP, то настройки этого самого magic_quotes_gpc в файле php.ini - они действуют для всего моего аккаунта - для всех инсталляций Друпала и Водрпресса и пр?
Если да, то почему поведение Друпала и ВП разное - Друпалы мои сохраняют кавычки с бэкслэшем, а Вордпрес - нормально, без бэкслэша?
2) Что-то мне кажется, что по моим деньгам мне не дадут поковыряться в настройках php.ini
>какие модули присутствуют на всех сайтах, >сохраняющих кавычки с бэкслэшем?
-Просто поставил новую чистую инсталляцию Друпала - 7.12 и уже - получите не приятность. Как и на всех других старых инсталляциях - хоть с модулями хоть без оных.
А позавчера всё на всех работало...
magic_quotes должны быть установлены в OFF - они вообще не нужны ,
обращайтесь к хостеру ,пускай выключают.
хостеру по голове дать за такие чудачества , а что за хостинг такой ?
пускай выключат magic_quotes как было .
Посмотрел - у меня вообще нету этого файла php.ini (или плохо искал или он мне не доступен).
Версия PHP 5.2
Есть возможность перейти на 5.3
Наверное попробую.
В файле php.ini на домашнем ПК написано про параметер magic_quotes_gpc -
Also note, this feature has been deprecated as of PHP 5.3.0 and is scheduled for removal in PHP 6.
Может с переходом на 5.3 это всё поправится?...
Есть !
Заработало!
Боооольшое спасибо за совет про magic_quotes !
Я поставил на сервере PHP 5.3, после этого появился php.ini и в нём все эти magic_quotes отключены нафиг.
За-ра-бо-та-ло!
Спасибо, братцы. я спасён.
С уважением, Олег
Спасибо!
странно, конечно, друпал как бы умеет работать и с включенными магич. кавычками. В ядре ф-ция под это существует.
Но к сожалению не работает(((
У меня в hostmonster перестали работать сразу сайты и на 6м и 7м друпале, пока не добавил php.ini, при этом техподдержка: "это известная проблема, сообщество друпал уже работает над этим". а ведь сами включили...
При этом примечательно, что и CKEditor не хотел сохранять настройки. После добавления php.ini стал нормально сохраняться
Вопрос не по теме: а какие компоненты используются для этого форума? (себе такой же хочу)
включил себе на локалке маг кавычки, друпал естественно нормально их убирает. Ваша проблема в чем то другом. Если хотите узнать, то могу сказать где что в коде прологировать.
Так я добавил php.ini с двумя строчками
magic_quotes_gpc = Off
magic_quotes_runtime = Off
И все решилось
вопрос не в том, что у тебя сейчас все хорошо, а почему не работало тогда
У друпала в .htaccess установлено между прочим
php_value magic_quotes_gpc 0
magic_quotes_gpc по идее логическое значение ,поэтому наверное лучше php_flag magic_quotes_gpc off ,по крайней мере в D7 так прописано.
PHP бывает mod_php, а бывает CGI, в случае CGI = ему абсолютно пофиг на то что написано в .htaccess