Иван Юрченко 0 Опубликовано 4 июля, 2011 Жалоба Share Опубликовано 4 июля, 2011 Здравствуйте! Сегодня обнаружил такую проблемку при оформлении заказа: при вводе имени и фамилии (новая регистрация с другим паролем), которые уже есть в клиентской базе, магазин выдает стандартную ошибку базы данных. В логе такое: 1062 - Duplicate entry '0' for key 'PRIMARY' | insert into customers_info (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('0', '0', now()) | /create_account.php Можно это отключить? - иначе теряются старые клиенты, которые плохо дружат с интернетом. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 июля, 2011 Жалоба Share Опубликовано 5 июля, 2011 Это про какую страницу речь, на какой странице ошибка? Ссылка на сообщение Поделиться на другие сайты
Иван Юрченко 0 Опубликовано 5 июля, 2011 Автор Жалоба Share Опубликовано 5 июля, 2011 Это про какую страницу речь, на какой странице ошибка? после заполнения формы на create_account.php или create_guest_account.php - ошибка типа "магазин закрыт на техобслуживание" Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 июля, 2011 Жалоба Share Опубликовано 5 июля, 2011 Видимо, переменная $_SESSION['customer_id'] почему-то равна нулю. Попробуйте в /create_account.php закомментировать строку: $_SESSION['customer_id'] = vam_db_insert_id(); [/code] либо поменять на: [code] $_SESSION['customer_id'] = mysql_db_insert_id(); Вообще при регистрации имеет значение email адрес, он должен быть уникальным, а остальные данные любые могут быть. Ссылка на сообщение Поделиться на другие сайты
Иван Юрченко 0 Опубликовано 5 июля, 2011 Автор Жалоба Share Опубликовано 5 июля, 2011 У меня вчера БД запортилась: пропал столбик customers_id таблицы customers. Восстановил с резервной копии. Теперь почему-то реагирует на фамилию: при вводе уже существующей в базе выдает ошибку, указанную в первом посте. Если ввести новую несуществующую фамилию, то все проходит гладко, но в БД вместо следующего порядкового номера customers_id почему-то вносит 0. Подозреваю что может еще что-то запортилось в БД, не подскажете что может влиять? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 июля, 2011 Жалоба Share Опубликовано 5 июля, 2011 А что у Вас прописано у разных пользователей в customers_id колонке?! Я надеюсь у каждого своё число?! Сделайте backup базы и посмотрите в таблицы customers AUTO_INCREMENT не нулевой случайно? Ссылка на сообщение Поделиться на другие сайты
Иван Юрченко 0 Опубликовано 5 июля, 2011 Автор Жалоба Share Опубликовано 5 июля, 2011 А что у Вас прописано у разных пользователей в customers_id колонке?! Я надеюсь у каждого своё число?! Сделайте backup базы и посмотрите в таблицы customers AUTO_INCREMENT не нулевой случайно? столбец делал вручную, видимо криво, поскольку AUTO_INCREMENT=0 Переделал. теперь так ругается: 05/07/2011 21:07:05 | 1062 - Duplicate entry '1961' for key 'PRIMARY' | insert into customers_info (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('1961', '0', now()) | /create_account.php 05/07/2011 21:07:09 | 1062 - Duplicate entry '1962' for key 'PRIMARY' | insert into customers_info (customers_info_id, customers_info_number_of_logons, customers_info_date_account_created) values ('1962', '0', now()) | /create_account.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 июля, 2011 Жалоба Share Опубликовано 5 июля, 2011 Это конечно плохо. Попробуйте сделать AUTO_INCREMENT=1970 например. Ссылка на сообщение Поделиться на другие сайты
Иван Юрченко 0 Опубликовано 5 июля, 2011 Автор Жалоба Share Опубликовано 5 июля, 2011 Это конечно плохо. Попробуйте сделать AUTO_INCREMENT=1970 например. Теперь вроде получилось ;-) Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 июля, 2011 Жалоба Share Опубликовано 6 июля, 2011 Не за что Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 14 июля, 2011 Жалоба Share Опубликовано 14 июля, 2011 Ставлю на локалхосте голую 1.64 (сессии хранятся в БД). Та же ерунда - при быстром заказе $_SESSION['customer_id'] приравнивается нулю, после чего записывается в customers_info и магазин начинает сходить с ума. Т.е. быстрое оформление заказа вообще не работает (на почту клиенту уведомление не высылает). Более того - $_SESSION['customers_status'] тоже устанавливается в 0, после чего посетителю видно box_statistics (с кол-вом товаров, заказов, т.п.)! А это уже совсем не хорошо. $_SESSION['customer_email_address'] не передается - отсюда предположение о возникновении ошибки из FAQ. Ошибка та же - Duplicate entry '0' for key 'PRIMARY' | insert into customers_info и гостевые учетки при этом не видны в админке (хотя, сохраняются в таблицу customers) Давайте разбираться вместе :) Ссылка на сообщение Поделиться на другие сайты
Иван Юрченко 0 Опубликовано 14 июля, 2011 Автор Жалоба Share Опубликовано 14 июля, 2011 быстрое оформление заказа вообще не работает у меня работает, правда не на локалхосте, а на хостинге. Версия 1,59 Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 volniy А что на локальном компе, денвер стоит или что? Какие версии php, mysql? Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 На локальном апач+mysql 5.1+php 5.3.1 Может действительно что-то с настройками php? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 А есть возможность денвер поставить?! denwer.ru Для пробы. Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Быстро не получится. Можешь выложить phpinfo свой? Я сравню настройки. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Прицепил файл info.php.html Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 А куда? :) Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Поставил последний денвер, поставил голый 1.64. Вошел под админом - создал категорию, создал товар. Вышел из-под админа. Делаю быстрый заказ под анонимусом, заполняю все поля - то же самое, в customers_info пишется customers_info_id = "0" и выдает ту же ошибку базы. Причем, пока не удалишь сессию из таблицы sessions, всё глухо лежит с ошибкой о нехватке таблицы personal_offers_by_customers_status_. После создания таблицы - все тоже, что я описывал изначально Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Идем дальше. Если в таблице customers_info поставить такой же автоинкремент customers_info_id, как и в таблице customers, то заказ создается и виден в админке, но всё равно в него не передаются имя/фамилия и email (( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Странно. А в демке demo.vamhost.ru нормально? Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Да! В демке вроде всё шикарно. Можно получить слепок базы с нее (можно в почту) или скрипты, начиная с create_guest_account.php и заканчивая checkout_success.php? На выходных поковырял бы. В админку (vam@test.com / 12345) не пускает - не могу посмотреть насколько корректно сохраняются заказы. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 15 июля, 2011 Жалоба Share Опубликовано 15 июля, 2011 Так база обычная, та же, что Вы скачали в архиве с vamshop.ru Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 22 июля, 2011 Жалоба Share Опубликовано 22 июля, 2011 Залил на *NIX сервер - всё ок. Под Win32, Win64 - не работает. Копаю дальше. Кто-то победил проблему под Win? Ссылка на сообщение Поделиться на другие сайты
volniy 0 Опубликовано 23 июля, 2011 Жалоба Share Опубликовано 23 июля, 2011 Всё, победилось :) Решение: В файлах checkout_alternative.php и create_guest_account.php найти: $_SESSION['customer_id'] = vam_db_insert_id(); $customers_id = $_SESSION['customer_id'];[/code] заменить на: [code] //$_SESSION['customer_id'] = vam_db_insert_id(); $customers_id = $_SESSION['customer_id']; Причина в том, что mysql_insert_id() возвращает значение только последнего запроса, где было увеличение автоинкрементного поля (vam_db_perform(TABLE_CUSTOMERS, $sql_data_array)), после чего у нас идет SELECT, после которого mysql_insert_id() уже возвращает 0, который присваивается $_SESSION['customer_id']. Это приводит и к невозможности быстрого заказа, и, главное, к выводу блока статистики гостям, а этот блок содержит конфиденциальную информацию и ссылку на админку. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения