Перейти к содержанию
Форум поддержки пользователей VamShop

Возникла проблема


Рекомендуемые сообщения

Понадобилось добавить товар в магазин, и тут возникла проблема, которой раньше не было.

Я полагаю это появилось после установки обновлений.

В общем, при сохранении изменений в базу перед некоторыми символами (кавычки, обратный слэш и пр.) добавляется обратный слэш. Я так понимаю это функция addslashes. Но при считывании из базы слэши не убираются (видимо где-то не работает или отсутствует stripslashes). При чём при каждом сохранении, как понимаете, количество слэшей увеличивается.

В результате ломается HTML код, и единственный выход пока - править данные прямо в базе.

Подскажите, пожалуйста, в чём проблема и что можно сделать, чтобы это решить?

Ссылка на сообщение
Поделиться на другие сайты

Пока проявилось в описании товара, информации на главной странице и отзывах о товарах. Это то, с чем успел столкнуться.

Ссылка на сообщение
Поделиться на другие сайты

Хорошо.

Теперь, давайте, прицельно: нужно знать в каких точно полях.

Для этого либо назовите метки в шаблонах,

либо покажите скриншот и, желательно html-код страницы, и укажите, где проблема (я найду поле, если сами не сможете).

Ссылка на сообщение
Поделиться на другие сайты

Кажется я понял!!! Я тут недавно перешёл на ручные ЧПУ и при этом, следуя инструкциям на форуме, залил в корень магазина файл 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> 

Ссылка на сообщение
Поделиться на другие сайты

magic_quotes_gpc оставьте как есть ( = 0)

При таком значении экранирование уже проводится, поэтому надо найти и удалить addslashes. Она при таком значении magic_quotes_gpc ( = 0) и даёт двойное экранирование.

Чтобы найти addslashes надо знать где искать. Поэтому повторю свой вопрос:

Теперь, давайте, прицельно: нужно знать в каких точно полях.

Для этого либо назовите метки в шаблонах,

либо покажите скриншот и, желательно html-код страницы, и укажите, где проблема (я найду поле, если сами не сможете).

Ссылка на сообщение
Поделиться на другие сайты

Поля "products_description_1" и "products_short_description_1" на странице добавления товара в админке;

"cont" на странице редактирования информационных страниц в админке;

"reviews_text" на странице редактирования отзывов в админке

Вот пример скриншота и кода:

post-4142-1304838328,9592_thumb.jpg

html_kod.txt

Ссылка на сообщение
Поделиться на другие сайты

Что-то не могу найти причины. Смотрел версию 1.56.

Похоже, что Вы просто что-то где-то не дообновили.

Какой может быть выход?

Вы какой-то свой код в движок прописываете или движок у вас полностью стандартный?

Если без собственных доработок - залейте полностью версию 1.56 (кроме конфиг. файлов) и радуйтесь.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 weeks later...

Отвлёкся от решения этой проблемы, но всётаки надо её решить.

Что бы исключить вероятность ошибок при ряде обновлений магазина перезалил магазин с нуля версию 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.

Ссылка на сообщение
Поделиться на другие сайты

Вставляю в текстовый редактор, то есть в тот, который раньше открывался по умолчанию, а в 1.57 на него надо переключаться.

Ссылка на сообщение
Поделиться на другие сайты

Похоже мы недопонимаем друг друга.

Я вставляю HTML код не в визуальный редактор (тот что типа Word), а в то окно, которое открывается при его отключении, то есть окно без всяких кнопочек и фенечек над ним.

И при этом при каждом сохранении кода (при каждом нажатии на кнопку "сохранить") слэши неуклонно размножаются.

Ссылка на сообщение
Поделиться на другие сайты

Всё равно добавляет слэши.

Если ручками код вставляешь в саму базу, тогда всё ОК. Но ведь это не дело забивать напрямую в базу.

Ссылка на сообщение
Поделиться на другие сайты

Тогда наверное только править сам скрипт, сохраняющий данные в базу, убирать там функцию vam_db_prepare_input по-моему.

Насколько я понимаю, это сделано специально, для предотвращения sql injection.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...