Evgeniy 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 Понадобилось добавить товар в магазин, и тут возникла проблема, которой раньше не было. Я полагаю это появилось после установки обновлений. В общем, при сохранении изменений в базу перед некоторыми символами (кавычки, обратный слэш и пр.) добавляется обратный слэш. Я так понимаю это функция addslashes. Но при считывании из базы слэши не убираются (видимо где-то не работает или отсутствует stripslashes). При чём при каждом сохранении, как понимаете, количество слэшей увеличивается. В результате ломается HTML код, и единственный выход пока - править данные прямо в базе. Подскажите, пожалуйста, в чём проблема и что можно сделать, чтобы это решить? Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 Код движка правили? Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 29 марта, 2010 Автор Жалоба Share Опубликовано 29 марта, 2010 Нет не правил. Может при обновлении что-то не так "легло" и следует перезалить какие-нибудь файлы? Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 В каких полях это происходит? Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 29 марта, 2010 Автор Жалоба Share Опубликовано 29 марта, 2010 Пока проявилось в описании товара, информации на главной странице и отзывах о товарах. Это то, с чем успел столкнуться. Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 Какие обновления ставили? Какая версия магазина? Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 29 марта, 2010 Автор Жалоба Share Опубликовано 29 марта, 2010 Обновился с 1.53 до 1.56. Обновлялся как положено поэтапно 1.53 - 1.54 - 1.55 - 1.56. Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 Хорошо. Теперь, давайте, прицельно: нужно знать в каких точно полях. Для этого либо назовите метки в шаблонах, либо покажите скриншот и, желательно html-код страницы, и укажите, где проблема (я найду поле, если сами не сможете). Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 29 марта, 2010 Автор Жалоба Share Опубликовано 29 марта, 2010 Кажется я понял!!! Я тут недавно перешёл на ручные ЧПУ и при этом, следуя инструкциям на форуме, залил в корень магазина файл htaccess.txt. Я заглянул в этот файл и увидел там такую строку: php_value magic_quotes_gpc 0 . Хотя почти ничего не понимаю в PHP, но чисто интуитивно попробовал её удалить. ПРОБЛЕМА ИСЧЕЗЛА!!! Я понимаю так: при при условии, когда этот параметр равен 0, скрипт магазина как раз и добавляет обратные слэши, при чём добавляет каждый раз, когда нажимаем кнопку "Сохранить" в редакторе, в итоге после нескольких редактирований материала получаем кучу лишних слэшей, которые вылазиют в простом тексте и ломают HTML код. Но с другой стороны, наверно, не зря magic_quotes_gpc отключён. Объясните, пожалуйста, КАК БЫТЬ? И неужели я первый столкнулся с этой проблемой ведь у многих, наверно, залит этот же файл. На всякий случай прилагаю текст моего файла htaccess.txt: AddDefaultCharset utf-8 RewriteEngine On RewriteBase / RewriteRule ^product_reviews_write\.php\/info\/p(.*)_.*\.html product_reviews_write\.php\?products_id=$1 [L] RewriteRule ^product_reviews_write\.php\/action\/process\/info\/p([0-9]*)_.*\.html product_reviews_write\.php\?action=process\&products_id=$1 [L] RewriteRule ^product_info\.php\/info\/p(.*)_.*\/action\/add_product product_info\.php\?products_id=$1\&action=add_product\ [L] RewriteRule ^shopping_cart\.php\/products_id\/([0-9]*)\/info\/p([0-9]*)_.*\.html shopping_cart\.php\?products_id=$1 [L] RewriteRule ^(product_info|index|shop_content|news|articles|article_info).php(.*)$ redirector.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.js$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*).html(.*)$ manager.php [L] RewriteRule ^.*\.gif|\.jpg|\.png|\.css|\.php|\.js$ - [L] # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value magic_quotes_gpc 0 php_value register_globals 0 php_value session.auto_start 0 php_value mbstring.http_input pass php_value mbstring.http_output pass php_value mbstring.encoding_translation 0 php_value default_charset UTF-8 php_value mbstring.internal_encoding UTF-8 </IfModule> Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 magic_quotes_gpc оставьте как есть ( = 0) При таком значении экранирование уже проводится, поэтому надо найти и удалить addslashes. Она при таком значении magic_quotes_gpc ( = 0) и даёт двойное экранирование. Чтобы найти addslashes надо знать где искать. Поэтому повторю свой вопрос: Теперь, давайте, прицельно: нужно знать в каких точно полях.Для этого либо назовите метки в шаблонах, либо покажите скриншот и, желательно html-код страницы, и укажите, где проблема (я найду поле, если сами не сможете). Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 29 марта, 2010 Автор Жалоба Share Опубликовано 29 марта, 2010 Поля "products_description_1" и "products_short_description_1" на странице добавления товара в админке; "cont" на странице редактирования информационных страниц в админке; "reviews_text" на странице редактирования отзывов в админке Вот пример скриншота и кода: html_kod.txt Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 29 марта, 2010 Жалоба Share Опубликовано 29 марта, 2010 Что-то не могу найти причины. Смотрел версию 1.56. Похоже, что Вы просто что-то где-то не дообновили. Какой может быть выход? Вы какой-то свой код в движок прописываете или движок у вас полностью стандартный? Если без собственных доработок - залейте полностью версию 1.56 (кроме конфиг. файлов) и радуйтесь. Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 25 апреля, 2010 Автор Жалоба Share Опубликовано 25 апреля, 2010 Отвлёкся от решения этой проблемы, но всётаки надо её решить. Что бы исключить вероятность ошибок при ряде обновлений магазина перезалил магазин с нуля версию 1.56 и пропатчил до 1.57 - проблема осталась!!! Изменений в движок не вносил. Приведу пример проблемы. Вот код, который пишу в поле редактора информационных страниц: <p style="text-align: justify;"><span style="font-size: medium;"><span style="color: #ff9707;"><strong>Для жителей Алматы:</strong></span></span></p> <ul style="text-align: justify;"> Вот, что прописывается в базу при сохранении: <p style=\"text-align: justify;\"><span style=\"font-size: medium;\"><span style=\"color: #ff9707;\"><strong>Для жителей Алматы:</strong></span></span></p> <ul style=\"text-align: justify;\"> И вот, что получаю в результате в браузере: <p style=\"\\\"><span style=\"\\\"><span style=\"\\\"><strong>Для жителей Алматы:</strong></span></span></p> <ul style=\"\\\"> Склоняюсь к выводу, что дело всётаки в параметре "magic_quotes_gpc = 0" в .htaccess, так как до перехода на ручные ЧПУ в данном файле не было этого параметра, и всё работало нормально. И теперь, когда удаляешь "magic_quotes_gpc = 0" всё нормализуется. Но с другой стороны, на локальном сервере на Денвере всё работает нормально даже с "magic_quotes_gpc = 0" Может быть дело в каких-то настройках хостера? Ну скажем того же magic_quotes_gpc. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 апреля, 2010 Жалоба Share Опубликовано 25 апреля, 2010 А как Вы этот код вставляете?! Попробуйте с выключенным html-редактором вставлять. Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 25 апреля, 2010 Автор Жалоба Share Опубликовано 25 апреля, 2010 Вставляю в текстовый редактор, то есть в тот, который раньше открывался по умолчанию, а в 1.57 на него надо переключаться. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 апреля, 2010 Жалоба Share Опубликовано 25 апреля, 2010 Так что б редактор ничего не добавлял, наверное ведь надо отключать редактор. Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 25 апреля, 2010 Автор Жалоба Share Опубликовано 25 апреля, 2010 Похоже мы недопонимаем друг друга. Я вставляю HTML код не в визуальный редактор (тот что типа Word), а в то окно, которое открывается при его отключении, то есть окно без всяких кнопочек и фенечек над ним. И при этом при каждом сохранении кода (при каждом нажатии на кнопку "сохранить") слэши неуклонно размножаются. Ссылка на сообщение Поделиться на другие сайты
Bububu 0 Опубликовано 25 апреля, 2010 Жалоба Share Опубликовано 25 апреля, 2010 Ну, да, Саша же и советует воспользоваться встроенным редактором. Ссылка на сообщение Поделиться на другие сайты
Evgeniy 0 Опубликовано 25 апреля, 2010 Автор Жалоба Share Опубликовано 25 апреля, 2010 Всё равно добавляет слэши. Если ручками код вставляешь в саму базу, тогда всё ОК. Но ведь это не дело забивать напрямую в базу. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 апреля, 2010 Жалоба Share Опубликовано 26 апреля, 2010 Тогда наверное только править сам скрипт, сохраняющий данные в базу, убирать там функцию vam_db_prepare_input по-моему. Насколько я понимаю, это сделано специально, для предотвращения sql injection. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения