Страница 1 из 1

phpbb

СообщениеДобавлено: 12 мар 2003, 13:32
kolyan
Не совсем новелл ...
Nw 5.1 sp 5
apache 1.3.27
php 4.2.4 (тот что щас на новеле лежит)
Установил PhpBB 2.0.4
Успешно все установилось но при повторном заходе на сервер выдается ошибка

phpBB : Critical Error

Error creating new session

DEBUG MODE

SQL Error : 1062 Duplicate entry 'd6369988a10b0a0c2fdadc4423665213' for key 1

INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) VALUES ('d6369988a10b0a0c2fdadc4423665213', -1, 1047461173, 1047461173, '0a734103', 0, 0)

Line : 152
File : sys:/apache/htdocs/phpbb/includes/sessions.php

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

СообщениеДобавлено: 12 мар 2003, 13:47
Михаил Григорьев
Не у вас у одного такая петрушка... У меня тоже после перехода с PHP 4.0.8 на PHP4.2.3 такое вылезало... Проблема думаю в PHP,.... хотя.... я так до конца и не разобрался...

СообщениеДобавлено: 12 мар 2003, 15:15
Yuri Mischenko
Солидарен с Михаилом и хотелось бы узнать как пофиксить :evil:

СообщениеДобавлено: 12 мар 2003, 15:36
Andrey Karyagin
Я только что по ошибке поместил некоторые соображения по этой теме в тему "Просмотрщик Loga
Border Manager". Спохватившись, попросил модераторов перенести их сюда, да видно у них пока еще руки не дошли. Посмотрите пока там. Может, что и получится?

СообщениеДобавлено: 12 мар 2003, 16:13
kolyan
вылечилось !
$session_id = md5(uniqid(rand(),1));
вот так поменял строку и все завелось
ID теперь генерится другой когда с той же машины заходиш !
спасибо !

СообщениеДобавлено: 12 мар 2003, 16:20
Andrey Karyagin
Да это не мне спасибо, а нашим западным коллегам, которые столкнулись с проблемой несколько раньше нас.

Может быть модераторы помогут поправить мою ошибку и перенесут сообщение сюда из темы, посвященной BorderManager Log? В спешке ошибся я с темой, и вот теперь неудобство вышло.

СообщениеДобавлено: 12 мар 2003, 16:44
Михаил Григорьев
Andrey что то я не вижу вашего поста в теме про BMLog :?

kolyan писал(а):вылечилось !
$session_id = md5(uniqid(rand(),1));
вот так поменял строку и все завелось
ID теперь генерится другой когда с той же машины заходиш !
спасибо !


Хмммм.... Ща попробуем у себя.... :D

СообщениеДобавлено: 12 мар 2003, 17:25
Yuri Mischenko
Ну вроде бы и правда заработало http://zgpu.chita.ru/forum/ :D

СообщениеДобавлено: 12 мар 2003, 17:32
Yuri Mischenko
найден косяк
при данной, фиксе phpbb перестает реагировать на BBCode, т.е. те же цитаты не выделяются, а пишутся обычным текстом :(

СообщениеДобавлено: 12 мар 2003, 19:17
Andrey Karyagin
По поводу последней проблемы пока ничего не готов сообщить, а для Михаила Григорьева дублирую интересующую его информацию с форума
news://novell.devsup.php от 29 янв. 2003г.:

Anantha Kesari wrote:

uniqid() works now. You could expect that in the March NDK release.

Thanks,
Ananth.

"Paul Jones" <pjones@novell.com> wrote in message
news:O9dY9.695$EM3.14@prv-forum2.provo.novell.com...
> This is a bug. I will report it to the engineers. Setting the second
> parameter to uniqid to 1 will return unique ids.
>
> Paul Jones
> Novell, Inc.
> www.novell.com
>
>
> mcu@elthamhs.vic.edu.au wrote:
> > Reading a thread previously on PHPBB2, a number of us have been
> > floundering on trying to use this good open source bulletin board.
> > Critical error: Error creating new session. I have finally got to the
> > cause of the problem - uniqid()not working properly. The fact that it
may
> > not work properly is in the text file accompanying the Netware version
of
> > PHP I have that goes with Apache 1.3
> >
> > If in PHPBB2 you turn on debug (in includes/constants.php) you get a
more
> > detailed error message refering to duplicates in an index in
> > phpbb_sessions table.
> >
> > It seems this line '$session_id = md5(uniqid($user_ip));' (from
> > includes/sessions.php) does not create a unique identifier for the
session
> > if coming from the same IP address. I used phpMyAdmin to empty this
table
> > and saved a no change edit of the corrupted index to fix the index. My
fix
> > for session ID was to change it to '$session_id =
md5(uniqid(rand(),1));'
> >
> > Given that phpbb_sessions table is a heap table, maybe restarting MySQL
> > may also have cleaned up the table.
> >
> > Apparently uniqid() is meant to be based on microseconds from the clock
> > and the string passed should make it unique if happens at the same
> > microsecond. It seems here that if the string is the same then it
> > generates the same result all the time. md5 converts to a 32 byte hash.
>