Регистрация
Вход через соцсети
Восстановление пароля

Ошибка при авторизации Warning: Duplicate entry

Новый топик
Страницы: 1  |  2
09.07.2008, 05:57
Ответить | Цитировать
Гость
Гость

Сайт нормально работал на хостинге masterhost. Был скопирован на другой сервер и при авторизации выдаёт

Warning: Duplicate entry 'f0c7accd94205796d0ccbd6f98fbc78f' for key 1 in /www/netcat/sql_mysql.php on line 205

$AUTHORIZATION_TYPE стоит cookie, в браузере cookie включены, PHP собран как модуль. Apache и PHP установлены со стандартными настройками.
Если зарегистрировать нового пользователя, то он в базе появляется, но при входе та же ошибка.
Може подскажете где копать?
10.07.2008, 07:36
Ответить | Цитировать
Гость
Гость

Неужели никто не знает? Я раньше не имел дел с PHP, но понимаю,что проблема не в сайте, а в настройках, то ли Апача, то ли MySQL. Но в чем именно? Хотя бы примерно?
10.07.2008, 09:52
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Проблема в том, что в какой-то из ваших таблиц в mySQL установлена уникальность по какому-то полю (полям). И при попытке нарушения данной уникальности выдается эта ошибка.

Вам надо найти sql запрос, который пытается нарушить целостность таблички. По нему вы сможете понять что за таблица, какое поле уникально ну и почему идет попытка добавить дублирующуюся запись.

Для просмотра всех sql запросов добавьте строку $db->trace = true; куда-нить в конец файла /netcat/connection_io.php

Temet nosce...
10.07.2008, 13:58
Ответить | Цитировать
Гость
Гость

Спасибо.
Вставил. Получилась вот что: есть 13-ый запрос, есть 15-ый, а вместо 14-ого та самая ошибка
Как же узнать, какой запрос был 14-ым?

Query [13] -- [UPDATE Session SET SessionTime = 1215768641 WHERE Session_ID = '5a3d1c80643423e8df7debb40181d712']

Query Result..

No Results


Warning: Duplicate entry '5a3d1c80643423e8df7debb40181d712' for key 1 in /netcat/sql_mysql.php on line 205

Last Error -- [Duplicate entry '5a3d1c80643423e8df7debb40181d712' for key 1]

Query [15] -- [SELECT CSS, Parent_Template_ID, Header, Footer, Settings, CustomSettings FROM Template WHERE Template_ID='81']

Query Result..
10.07.2008, 16:26
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

интересно девки пляшут....

Очень вероятно, что тут дело в следующем:
1. В Неткете есть механизм авторизации, который называется сессии. Сессия - это сеанс пользователя, который идентифицируется уникальным значением, в Вашем случае это 5a3d1c80643423e8df7debb40181d712

2. По умолчанию сессии в пхп реализованы в виде хранения на стороне сервера (хостинга) файла сессии с именем "бла-бла-бла_5a3d1c80643423e8df7debb40181d712". В этом файле хранятся все переменные сессии.

3. В Вашем случае разработчик-настройщик вашего сайта решил отказаться от использования файлов сессий. Вместо этого для хранения переменных сессий он использует базу данных. Для этого он изменил настройки пхп (подробнее тут). Ну либо эти настройки навязал ваш старый хостер, но тогда при переносе на новый хостинг проблем возникнуть не должно было бы.

4. В итоге после переноса на новый хостинг система авторизации осталась прежней. И собственно функционал, где описаны функции по работе с БД (все функции вставки и удаления записей из таблицы сессий вашей БД). Причем в данном функционале видимо есть ошибки, раз у вас возникают ошибки.

5. Следовательно, Вам нужно:
- либо исправить этот функционал;
- либо вернуться к "родному" функционалу хранения сессий в файлах.
Чтобы это сделать, Вам нужно понять где в движке вашей системы Неткет были внесены соотв-ие изменения. Как поймете - меняйте на свое усмотрение.

6. Ща, чтобы работать, попробуйте выполнить следующий sql запрос:
Код:
delete from Session

этот запрос удалит все записи из таблицы сессий, в результате чего дублирования записей быть не должно.

Temet nosce...
10.07.2008, 17:13
Ответить | Цитировать
Гость
Гость

Таблицу Session я очистил как только обнаружил в ней ЭТО '5a3d1c80643423e8df7debb40181d712'. Попытался войти по админом , пароль пустой. Опять та же ошибка. В таблице Session появилась ОДНА запись со значением 5a3d1c80643423e8df7debb40181d712 в поле Session_ID.
Зашел на сайт с другой машины. Появилась запись с пустым Session_ID. Попробовал войти под админом. Опять ошибка и появилась ТРЕТЬЯ запись с Session_ID=401897ccf98067405017f6e55b4b875c. Либо при попытке залогиниться производятся 2 попытки записи одного и того же в таблицу Session, либо я вообще ничего не понимаю. И главный вопрос - как мне в ПХП-скриптах найти нужное место. Разработчик внятных ответов не дает, просит предоставить доступ к серверу, а сделать это невозможно.
10.07.2008, 18:17
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Во вссех пхп файлах поищите текст session_set_save_handler - эта функция определяет набор "пользовательских" функций для работы с сессиями. Поищите также session_ start. Поищите слово Session - это название таблицы сессий. Можете сделать дамп базы и тоже самое поискать в дампе - это, если вдруг, данный код вшит в контент Неткета.

У Вас наверняка должен быть дистрибутив неткета - сравните какие файлы в каких местах отличаются.

Temet nosce...
10.07.2008, 19:37
Ответить | Цитировать
Гость
Гость

Проблема вроде как решена в последнем обновлении (312).
10.07.2008, 22:32
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

мдаааа... улыбка

Оказывается с версии 310 в неткете сменился механизм сессий на мною описанный выше пример. Неткет дорос! Терь можно смотреть онлайн пользователей и иметь еще кучу полезностей, давно пора.

В общем, обновляйте свою версию до 312

Temet nosce...
11.07.2008, 06:36
Ответить | Цитировать
Гость
Гость

Возможно обновление поможет. А может и нет. Ведь на другом хостинге все работало. Спасибо за ссылку на руководство по ПХП. К сожалению, в английском языке я разбираюсь не на много лучше чем в ПХП. Есть подозрение, что нужно в php.ini в строке session.save_handler=files вместо files поставить что-то другое. Но что? Какие вообще значения туда можно поставить?
11.07.2008, 09:22
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Поставьте обновление. 99% что поможет, раз уж d сказал...

Ну а если не поможет, то пишите сюда, будем d ругать

Temet nosce...
198 196 2008-07-11 14:24:55 7475
Страницы: 1  |  2
Описание проекта