Witam,
To ja chciałbym powtórzyć i rozbudować pytanie. Poszukałem trochę po necie (np.
http://area51.phpbb.com/phpBB/viewtopic.php?f=4&t=28456), ponieważ również chciałbym zintegrować bazę i logowanie /wylogowywanie z mojego serwisu z forum, które niedawno zostało do niego podłączone. Na razie sytuacja wygląda tak:
- Mój serwis przerobiłem tak, że logowanie opiera na ciasteczkach (bez sesji, ponieważ wydawało mi się, że to one powodują problem, ponieważ kolidują w jakiś sposób z sesjami phpbb3)
- Przy logowaniu z wykorzystaniem mojego formularza logowania stosuję następujący fragment kodu, który loguje użytkownika również do phpbb3:
Kod: Zaznacz cały
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->login($userInfo->login, $userInfo->password);
$auth->acl($user->data);
$user->setup();
- Przy wylogowywaniu na początku korzystałem z kodu:
Kod: Zaznacz cały
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$user->session_kill();
ale ponieważ miałem problemy, to próbowałem sam usuwać ciasteczka phpbb i aktualizować odpowiednie tabele (_sessions i _users), co generalnie rzecz biorąc nie pomagało.
Problem, na który napotykam jest następujący. Logowanie odbywa się skutecznie i przenosi na stronę główną serwisu (nie forum), ale w tabeli
_sessions pojawia się już jeden wpis z jego user_id. Użytkownik klika w zakładkę forum i jest przeniesiony na stronę forum, gdzie jest zalogowany (yeah 8) ). Niestety okazuje się, że zaowocowało to powstaniem drugiego (sic!) wpisu w tabeli
_sessions. Od tego momentu każde wyjście z podstron forum do serwisu głównego i powrót zaowocuje kolejnym wpisem w tabeli
_sessions. Stąd gdy w końcu zadowolony użytkownik kliknie w 'wyloguj', wówczas skutecznie wyloguje się ze strony głównej, ale w forum zniknie tylko ostatni wpis z tabeli
_sessions, więc na forum będzie nadal zalogowany

.
Generalnie patrząc na inne fora wygląda na to, że te fragmenty kodu, które wstawiłem do mojego mechanizmu powinny zadziałać. Ponieważ nie działają, więc pewnie coś się dzieje za dużo. Trochę mi już brakuje pomysłów, więc proszę zadajcie mi jakieś pytania precyzujące mój problem, albo podrzućcie jakąś podpowiedź, która naprowadzi mnie na rozwiązanie.
Z góry dzięki.