Как да прочета cookie в phpBB2 ?

3 отговора 94 прегледа
#1

Как да прочета cookie в phpBB2 ?

Моля помогнете. Проблема е следния :
phpBB2 изпраща бисквитка на регистрирания потребител, с намерението когато отново влезне във форума да не се логва наново. Тая бисквитка обаче, както може да се очаква, е криптирана.
Това което се опитвам да направя, е да прочета тази бисквитка изпратена от собствения си форум, да видя името на юзъра и да го сложа на главната си страница.
Ако някой знае начи, моля да ми помогне. Благодаря.

Отговор
в отговор на lefty #2

Re: Как да прочета cookie в phpBB2 ?

При логването на потребител в phpBB, скрипта сетва две кукита - phpBB_data и phpBB_sid. Във първото (phpBB_data) имаш доста информация (сериализирана) но дори и там нямаш username а само user_id

Така, че имаш два варианта:
1. Редактираш функцията session_begin() във includes/sessions.php и някъде след ред 189 сетваш свое куки със username. Сещаш се обаче, че ако потребителя промени своя username, поне до следващото му логване, на началната ти страница ще се изписва стария username.

2. При всяко зареждане на началната ти страница, правиш unserialize() на phpBB_data, взимаш втория елемент (user_id) и питаш базата данни за username на този user_id

Според мен, първия вараиант ще ти свърши работа.

Отговор
в отговор на $burov #3

Re: Как да прочета cookie в phpBB2 ?

Благодаря много! Цяла нощ си блъсках кухата глава, но накрая се светнах. Всъщност, името на бисквитката по подразбиране е phpbb2mysql_data, освен ако не е сменено от администратора. Което значи че за тоя домейн има глобална променлива със същото име. Тя изглежда приблизително така :
a:2:{s:11:\"autologinid\";s:32:\"bааe5eа420c6122cа9c133d851a67662\";s:6:\"userid\";i:3;}
(променил съм стойностите, да не вземе да се изкуши някой да се вмъкне като админ)
И това накрая 3 е именно айдито на юзъра в базата данни.

Отговор
в отговор на $burov #4

Re: Как да прочета cookie в phpBB2 ?

П.С.
Забранил съм потребителя да променя своя юзърнейм :-)

Отговор