За месяц Август, 2008

OsCommerce - замеченные глюки-баги

Решил собрать некоторые глюки Oscommerce (версии и сборки различные) , потому как порой, как оказалось, они встречаются чаще одного раза.. А когда помнишь, что ты уже это делал.. и не помнишь, как.. а поиск выдает что-то не то..

Возможно, окажется полезным не только мне..

OsCommerce не отображает некоторые товары

Поскольку в этом SHOP-монстре куча всевозможных настроек, следует убедиться, что “скрытый” от глаз посетителя товар не отключен этими настройками. Естественно, если один товар отображается, а другой - нет, следует… сравнить атрибуты/параметры этих товаров в админ панели Oscommerce или непосредственно в базе. В моем случае, для не отображаемых товаров просто не был указан производитель.

OsCommerce не добавляет некоторые товары в корзину

Столкнулся с “чудесами” - все товары (все проверенные - порядка 30) в корзину добавляются нормально, один - ну никак не хочет. При попытке добавить в корзину происходит переход на пустую корзину.
Проблема оказалась в добавлении к атрибуту action в теге form дополнительного параметра &sid=id_sesion..

Oscommerce не дает войти в админ центр

Проблема оказалась в принудительной установке Cookies - поправил изменением значения в таблице configuration (непосредственно в базе). Искать в базе в таблице `configuration`
where configuration_key like '%cookie%'
менять с true на false и наоборот.

Oscommerce выдает ошибку при обновлении версии MySQL

При обновлении базы MySQL, используемой OsCommerce с версии 4 на версию 5, магазин “радует” нас англоязычными сообщениями об ошибках. Поиск по аглицким форумам помог решить проблему - в свое время  пару часов пришлось повозиться. Однако, сейчас уже и не вспомню… Если повторится - дополню…

На самом деле, несмотря на кажущуюся “громоздкость”, oscommerce , если разобраться, не такой уж сложный магазин. Наличие форумов, как русскоязычных, так и забугорных, дает возможность вникнуть и решить практически любую проблему.. (не путать с “проблему решат за тебя”.. хотя, обычно, вопрос цены…)

UPD
Oscommerce не добавляет товары в корзину

При попытке добавить товар в корзину (а также при регистрации) перебрасывает на страницу “включите Cookies” (cookie_usage.php) с сообщением:

Для работы с нашим магазином Вам необходимо включить поддержку cookies в Вашем браузере.

Из возможных вариантов:
1. неправильно указаны настройки в файле /includes/configure.php и admin/includes/configure.php (ситуация часто возникает при переездах oscommerce-магазина с одного хостинга на другой:
define('HTTP_SERVER', 'http://server.name'); // eg, http://localhost - should not be empty for productive servers
define('HTTPS_SERVER', 'https://server.name'); // eg, https://localhost - should not be empty for productive servers
define('ENABLE_SSL', false); // secure webserver for checkout procedure?
define('HTTP_COOKIE_DOMAIN', 'server.name');
define('HTTPS_COOKIE_DOMAIN', '');
define('HTTP_COOKIE_PATH', '/');

2. некоторые магазины на базе OSCommerce требуют включения директив php:
php_value register_globals on
php_value register_long_arrays on

3. если ситуация с cookies на локальном компьютере, то, возможно это из-за некорректного распознавания домена localhost некоторыми браузерами (они считают домен некорректным, если в нем нет точки). Или настраивать локальный web-сервер, или залезть в includes/application_top.php и подправить установку домена cookies: $cookie_domain = ” (при выкладке на сервер не забыть вернуть как было :)

Опубликовано Август 19, 2008 | автор: levik  |  Комментарии (4) »

Plesk и open_basedir

Столкнулся с таким положением дел: при попытке заинклудить какой-нибудь файлик командой типа include (’include/inc.inc’) - с указанием каталога относительно текущего, сервер выдал что-то вроде
blablabla open_basedir restriction in effect. blablabla ...
Мол не могу и всё.
Недоразуменьице получается. В плеске по умолчанию open_basedir включено. (если кому интересны подробности - пошукайте или в переводе). Как вариант лечения предлагаю подсмотренную на каком-то забугорном сайте пилюльку:

  1. Заходим по  (SSH)
  2. Создаем новый файл:
    vi /etc/httpd/conf.d/blabla_openbasedir_removal.conf
  3. Тыкаем [INS]ert на клавиатуре, чтобы перейти в режим ввода текста и пишем:
    <DirectoryMatch /var/www/vhosts/(.*)/httpdocs/>
         php_admin_value open_basedir none
    </DirectoryMatch>
  4. Тыкаем в кнопку (ESC) - переходим в командный режим; 
  5. Нажимаем [:wq] чтобы сохранить файл и выйти 

Теперь open_basedir нас беспокоить не должна…

Чуть не забыл.. после всего этого надо веб-сервер перезапустить. Либо service apache restart, либо service httpd restart… (Конечно, не исключено, что “служба” называется по-другому… Тогда должен помочь reboot :)

Думаю, понятно, что, если вместо (.*)  написать mydomainname.ru, то сработает это только для конкретного домена.

Кстати, Warning!!! :) Safe Mode was removed in PHP 6.0.0.

Опубликовано Август 15, 2008 | автор: levik  |  Комментарии (5) »

mom.exe - ошибка инициализации приложения

При загрузке системы появляется сообщение:

mom.exe
“Ошибка при инициализации приложения (0С0000135). Для выхода нажмите кнопку ОК”.

Файл MOM.exe (Catalyst Control Center: Monitoring program) входит в пакет драйверов видеокарты Radeon ATI Catalyst Control Center (ATI CCC)

Новые версии MOM.exe (начиная с версии 7.2) для корректной работы требует установленной на компьютере платформы Microsoft.Net Framework. Проверяем установку .NET.  При необходимости можно скачать с официального сайта microsoft.

Возможно, сообщение появляется из-за конфликта версий файлов драйвера видеокарты.

В любом случае, устранить ошибку инициализации приложения MOM.exe должна полная переустановка (сначала удаляем, потом ставим “с нуля”) драйвера видеокарты (лучше искать последнюю версию на сайте производителя) на системе с установленной платформой .NET

Переустановка драйвера не помогла? Сообщите в комментарии!

Аналогичная ошибка может возникать с файлом cli.exe

Опубликовано Август 8, 2008 | автор: levik  |  Комментарии (2) »

Выборка записей с максимальным значением в MySQL

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

Если поля всего два - сработает простой запрос:
id|date
select id, max(date) from table1;

При добавлении еще одного поля задача выбора записей с максимальным значением усложняется:

id|date|count

чтобы получить все записи с максимальной датой:
читать дальше про поиск записей с максимальным значением

Опубликовано Август 2, 2008 | автор: levik  |  Комментарии (3) »