*

Spido

  • *
  • 1634

Поддерживаю, у меня та же самая проблема! 
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Установка прошла без ошибок.

PHP5.3.2  MySQL5.1.47 Apache2.2.15  WinXP SP3

Выложите содержимое файла configure.php
Поверьте в файле php.ini, куда ведет путь хранения session.cookie_path  и session.save_path.
Проверьте права на папку к которому ведет путь session.save_path. Должны быть даны права на запись Apache.

Если вам помогли, то не стесняйтесь отблагодарить донатом:

Выложите содержимое файла configure.php
Поверьте в файле php.ini, куда ведет путь хранения session.cookie_path  и session.save_path.
Проверьте права на папку к которому ведет путь session.save_path. Должны быть даны права на запись Apache.

<?php
  define
('HTTP_SERVER''http://localhost');
  
define('HTTPS_SERVER''http://localhost');
  
define('ENABLE_SSL'false);
  
define('HTTP_COOKIE_DOMAIN''localhost');
  
define('HTTPS_COOKIE_DOMAIN''localhost');
  
define('HTTP_COOKIE_PATH''/oscommerce/');
  
define('HTTPS_COOKIE_PATH''/oscommerce/');
  
define('DIR_WS_HTTP_CATALOG''/oscommerce/');
  
define('DIR_WS_HTTPS_CATALOG''/oscommerce/');
  
define('DIR_WS_IMAGES''images/');

  
define('DIR_WS_DOWNLOAD_PUBLIC''pub/');
  
define('DIR_FS_CATALOG''V:/home/localhost/www/oscommerce/');
  
define('DIR_FS_WORK''V:/home/localhost/www/oscommerce/includes/work/');
  
define('DIR_FS_DOWNLOAD'DIR_FS_CATALOG 'download/');
  
define('DIR_FS_DOWNLOAD_PUBLIC'DIR_FS_CATALOG 'pub/');
  
define('DIR_FS_BACKUP''V:/home/localhost/www/oscommerce/admin/backups/');

  
define('DB_SERVER''localhost');
  
define('DB_SERVER_USERNAME''root');
  
define('DB_SERVER_PASSWORD''3348800');
  
define('DB_DATABASE''ARTVIK');
  
define('DB_DATABASE_CLASS''mysqli');
  
define('DB_TABLE_PREFIX''t_');
  
define('USE_PCONNECT''false');
  
define('STORE_SESSIONS''database');
?>

session.save_path = "/tmp"
и
session.cookie_path = /

*

Spido

  • *
  • 1634

Здесь проблема.

session.save_path = "/tmp"

Для windows такой путь не катит. Должна стоять буква диска, на котором работает операционная система, например буква С и создана соответствующая папка для хранения сессий.
Получаем: session.save_path = "C:/tmp"
Вообще-то, у windows используется папка temp а не tmp, поэтому прописываем правильно: session.save_path = "C:/temp"
Создаем на диске C папку temp и даем права этой папке на запись, в свойствах папки. Здесь, на форуме я описывал как это сделать, можно и в инете поискать.
Перезагружаем Apache.
Теперь всё должно работать.

На счёт файла конфигурации: есть сомнения, что с таким файлом вообще что-то заработало. Ну если заработало и проблема была только в записи сессий, то файл конфигурации можно оставить как есть.
На на всякий случай, вот этот кусок должен выглядеть так:
  define('HTTP_COOKIE_PATH', '/');
  define('HTTPS_COOKIE_PATH', '/');
  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');
  define('DIR_WS_IMAGES', 'images/');

  define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Love

У меня на Денвере вот что session.save_path = "/tmp" это папка которая лежит не на самом диске а в подпапке папки денвера. Полет нормальный. Это не причем тут.
Может не робит, из-за того что они положили сайт не нормально.
Короче судя по конфигу у них сайт лежит в подпапке локалхоста т.е. тута V:/home/localhost/www/oscommerce/.
значить и работать он должен по адресу http://localhost/oscommerce/
Что то вы там перемудрили.
Неужели вам в лом создать вируальный домен нормально, тем паче что в Денвере это делается на раз-два-три.

Вот пример

  define('HTTP_SERVER', 'http://ваш_домен.ru');
  define('HTTPS_SERVER', 'http://ваш_домен.ru');
  define('ENABLE_SSL', false);
  define('HTTP_COOKIE_DOMAIN', 'ваш_домен.ru');
  define('HTTPS_COOKIE_DOMAIN', 'ваш_домен.ru');
  define('HTTP_COOKIE_PATH', '/');
  define('HTTPS_COOKIE_PATH', '/');
  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');
  define('DIR_WS_IMAGES', 'images/');

  define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');
  define('DIR_FS_CATALOG', 'Z:/home/ваш_домен.ru/www//');
  define('DIR_FS_WORK', 'Z:/home/ваш_домен.ru/www//includes/work/');
  define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
  define('DIR_FS_BACKUP', 'Z:/home/ваш_домен.ru/www//admin/backups/');

*

demidoff

Здесь проблема.
session.save_path = "/tmp"

Для windows такой путь не катит. Должна стоять буква диска, на котором работает операционная система, например буква С и создана соответствующая папка для хранения сессий.
Получаем: session.save_path = "C:/tmp"
Вообще-то, у windows используется папка temp а не tmp, поэтому прописываем правильно: session.save_path = "C:/temp"
Создаем на диске C папку temp и даем права этой папке на запись, в свойствах папки. Здесь, на форуме я описывал как это сделать, можно и в инете поискать.
Перезагружаем Apache.
Теперь всё должно работать.

На счёт файла конфигурации: есть сомнения, что с таким файлом вообще что-то заработало. Ну если заработало и проблема была только в записи сессий, то файл конфигурации можно оставить как есть.
На на всякий случай, вот этот кусок должен выглядеть так:
  define('HTTP_COOKIE_PATH', '/');
  define('HTTPS_COOKIE_PATH', '/');
  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');
  define('DIR_WS_IMAGES', 'images/');

  define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');

Мой configure.php:
  define('HTTP_SERVER', 'http://localhost:8080');
  define('HTTPS_SERVER', 'http://localhost:8080');
  define('ENABLE_SSL', false);
  define('HTTP_COOKIE_DOMAIN', 'localhost');
  define('HTTPS_COOKIE_DOMAIN', 'localhost');
  define('HTTP_COOKIE_PATH', '/');
  define('HTTPS_COOKIE_PATH', '/');
  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');
  define('DIR_WS_IMAGES', 'images/');

  define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');
  define('DIR_FS_CATALOG', 'C:/led/');
  define('DIR_FS_WORK', 'C:/led/includes/work/');
  define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');
  define('DIR_FS_BACKUP', 'C:/led/admin/backups/');

  define('DB_SERVER', 'localhost');
  define('DB_SERVER_USERNAME', 'root');
  define('DB_SERVER_PASSWORD', 'password');
  define('DB_DATABASE', 'leds');
  define('DB_DATABASE_CLASS', 'mysqli');
  define('DB_TABLE_PREFIX', 'osc_');
  define('USE_PCONNECT', 'false');
  define('STORE_SESSIONS', 'database');

Создал каталог c:\temp, исправил session.save_path на "C:/temp", но ничего не изменилось! 
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)


*

Love

Здравствуйте, у меня возникла следующая проблема. Установилось все (osCommerce+ServisePack1.4) без ошибок на denwer, но не могу зайти в админку, при вводе логина и пароля просто обновляет страницу, ошибок ввода неправильного пароля нет, и еще когда что нибудь добавляешь в корзину пишет: "Ваша корзина пуста", и не добавляет ничего. Помогите разобраться пожалуйста
Поддерживаю, у меня та же самая проблема! 
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Установка прошла без ошибок.

PHP5.3.2  MySQL5.1.47 Apache2.2.15  WinXP SP3

Если и у вас Денвер. Как же вы его так установили и настроили через одно место, что все домены лежать на С?

Выложите пожалуйста дамп тестовой базы в utf-8

*

Love

Попробывал сие чудо на хостинге.
Залил базу в utf-8 зашел посмотрел все как надо в кирилице.
Открываю сайт, все в квадратиках через IE.
Пробую редактить через админку, пишу кирилицей, сохраняю. Теперь на сайте кирилица, а в базе кракозяблы.

Вылечилось сие чудо вот как. Может кому то пригодится.
В файле mysqli.php после

      if ($this->link = @$connect_function($this->server, $this->username, $this->password)) {
        $this->setConnected(true);
Добавляем вот это
@mysqli_set_charset($this->link, "utf8");
Все готово. Теперь базу залил в utf-8, сайт все кирилица, в базе кирилица. Редактируется все без проблем в кирилице.

Спасибо за решение... Теперь остается подумать как это можно в сервиспаке сделать.... Так как людям придется переконвертить как то весь дамп чтобы старые краказябалы сделать нормальными... Может у кого есть простое решение как переконвертить?

Решение найдено - просто делаем дамп базы стандартным бэкапом из админки, сохраняем его на своем компе и заново этот бэкап восстанавливаем так же... И все ок. База будет переконвертирована. Теперь в версии 1.5 будет применено это решение с кодировкой.

« Последнее редактирование: 21 Июл 2010 12:17:35 pm от musicman »

Найден критический баг. Вроде бы мелочь - IP. Чего тут такого.... А оказалось что часть клиентов (от 30 до 50%) просто не могли зарегистрироваться и сделать заказ. И что самое обидное, я об этом никак не мог знать, так как в логах не было видно ошибку. Узнал только после письма клиента. И заметил, что когда продавал модули на старом самописном движке своем, то клиентов было больше раза в 2 по продажам. Кто знает - я поставил в апреле наконец то для продажи модулей магазин на osc 3, хотя сам много для него сделал уже... Ну поставил и заметил что клиентов раза в 2 меньше.. Думал мол апрель там, май... ну июнь пошел.. июль..... И тут письмо от клиента. Я когда понял что часть клиентов просто не могла заказ сделать и уходила думая что магаз не работает то просто поразился... Пишу другу своему, мол, давай зарегься... Без особой надежды что глюк у него проявится... И у него как раз он проявился... Т.е. часть клиентов нормально регится, а часть по непонятным причинам не может и не отображается как клиент в онлайне даже. Ну целый день поисков и решения проблемы при большой помощи товарища "Love" с форума эту проблему удалось победить... Так что исправление критическое, и оно будет в сервиспаке версии 1.5

Вот что делаем:

В файле includes/functions/general.php ищем

function osc_get_ip_address() {
if (isset($_SERVER)) {
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } else {
    $ip = $_SERVER['REMOTE_ADDR'];
  }
} else {
  if (getenv('HTTP_X_FORWARDED_FOR')) {
    $ip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_CLIENT_IP')) {
    $ip = getenv('HTTP_CLIENT_IP');
  } else {
    $ip = getenv('REMOTE_ADDR');
  }

и меняем на

function osc_get_ip_address() {
if (isset($_SERVER)) {
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } else {
    $ip = $_SERVER['REMOTE_ADDR'];
  }
} else {
  if (getenv('HTTP_X_FORWARDED_FOR')) {
    $ip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_CLIENT_IP')) {
    $ip = getenv('HTTP_CLIENT_IP');
  } else {
    $ip = getenv('REMOTE_ADDR');
  }
}
// Look at $ip, and see if it's actually an IP.
if ( preg_match('/^(?:\d{1,3}\.){3}\d{1,3}$/', $ip) === 1 )
{
return $ip;
}
// If we're here, then the environment variables didn't return something that can be used as an IP.
// First, see if it's a list of IPs: split on non-IP characters.
$iparray = preg_split('/[^0-9\.]+/', $ip);
// Now search for the first element in the array which is a publicly-routable IP address.
// I have seen "unknown" and other nonsense in my access logs in place of IP addresses;
// make sure we don't return any of those.
foreach ( $iparray as $ipaddr )
{
if ( preg_match('/^(?:\d{1,3}\.){3}\d{1,3}$/', $ipaddr) === 1 )
{
// Possible IP address. Publicly routable?
$ipoctets = preg_split('/\./', $ipaddr);
if ( count($ipoctets) === 4 )
{
// e.g. RFC 1918.
if ( $ipoctets[0] != 10 && !($ipoctets[0] == 172 && $ipoctets[1] >= 16 && $ipoctets[1] <= 31) && !($ipoctets[0] == 192 && $ipoctets[1] == 168) && !($ipoctets[0] == 127 && $ipoctets[1] == 0 && $ipoctets[2] == 0 && $ipoctets[3] == 1) && $ipoctets[0] <= 254 && $ipoctets[1] <= 254 && $ipoctets[2] <= 254 && $ipoctets[3] <= 254 )
{
return $ipaddr;
}
}
}
}
// None found. Return something.
return '0.0.0.0';
}

Либо качаем готовый файл к версии сервиспака 1.4 и меняем его. (ДОБАВЛЕНО: ПОЛЬЗОВАТЕЛЯМ SP 1.5 НЕ АКТУАЛЬНО)

Спасибо Love, моему другу Terjhon (Фукс), не имеющему никакого понимания в php но всегда помогающему чем сможет, и бдительному клиенту Михаилу Кочетову (за то что ткнул носом).

« Последнее редактирование: 10 Авг 2010 23:00:26 pm от musicman »

Кстати, после того как было применено решение, устраняющее краказябалы в пхпадмине, тут же стал нормально работать поиск по сайту. Теперь понятно почему у кого то поиск работал а у кого то нет. Теперь он будет работать у всех 
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Здравствуйте, у меня возникла следующая проблема. Установилось все (osCommerce+ServisePack1.4) без ошибок на denwer, но не могу зайти в админку, при вводе логина и пароля просто обновляет страницу, ошибок ввода неправильного пароля нет, и еще когда что нибудь добавляешь в корзину пишет: "Ваша корзина пуста", и не добавляет ничего. Помогите разобраться пожалуйста
Поддерживаю, у меня та же самая проблема! 
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Установка прошла без ошибок.

PHP5.3.2  MySQL5.1.47 Apache2.2.15  WinXP SP3



Я разобрался с этой фигней. Тоже самое было. Надо денвер установить с версией php 5.2 - сразу все заработало
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

На версии 5.3.1 точно пашет без проблем. Версию 5.3.2 еще не проверял.

*

demidoff

На версии 5.3.1 точно пашет без проблем. Версию 5.3.2 еще не проверял.

На 5.3.1 у меня не заработало.
Буду пробовать на 5.2.x