[ broker @ 07.06.2004. 15:49 ] @
Napravio sm za sajt sistem za login korinika koji se oslanja na sesije i to radi sasvim korektno.

Sad hocu da napravim deo sajta na poddomenu osnovnog domena sajta. Moj kod sa tim nema problema, isti engine se koristi za login na bilo kom poddomenu i to provereno radi ali nakon otvaranja dokumenta sa poddomena, browser otvara novu sesiju prema serveru te login na sesiji osnovnog domena ne vazi za podomen - korisnik mora ponovo da se uloguje.

Znam da moze da se napravi custom session handler i to nije problem napraviti medjutim tada se hendleru mora prosledjivati neki id po kome se prepoznaje da se radi o istom korisniku - da se prenesu podaci iz jedne sesije u drugu. U principu ovo se moze izvesti i bez pisanja session handlera, dovoljno je proslediti ID root sesije na bilo koji nacin.

Medjutim, principijelno, to mi se ne svidja jer je riskantno sa strane sigurnosti. Zlonamernik moze da sazna ID i da ga upotrebi da se lazno predstavi. Dodatna provera po IP-u ne pomaze jer je vrlo cest slucaj da se na sajtu istovremeno nalazi vise korisnika sa istog IP-a.

Probao sam i da id sesije upisem u kolacic PHPSESSID koji vazi za domen i sve poddomene, a zove se isto kao koalcic koji PHP session handler inace korsiti, medjutm izgleda da to PHP session handler ignorise, on svakako pravi kolacic za konkretan domen i samo njega koristi.

Kako omoguciti da korisnik, koji je ulogovan na sajt na root domenu ili nekom od poddomena, moze da korsiti i delove sajta koji su na ostalim poddomenima a da ne mora za svaki posebno da se loguje, a da se zadrzi sigurnost koja je inace obezbedjena samim koriscenjem sesija?
[ afwt @ 08.06.2004. 02:45 ] @
Ja sam to resavao putem online_users tabele u kojoj pisem SESSID, id korisnika i vreme pristupa. Onda njegov SESSID stavim u cookie za ceo domen ali pod drugim imenom, a poddomen trazi iz baze podatke i puni svoju sesiju.

Nadam se da sam pomogao. U svakom slucaju, odlicna tema za diskutovanje...
[ -zombie- @ 08.06.2004. 02:56 ] @
postoji podešavanje u php.ini, u sekciji [session], koje se zove cookie_domain. njega možete podesiti i runtime, recimo sa:

Code:
ini_set('session.cookie_domain', '.vaš-domen.com');


ili pozivanjem session_set_cookie_params() funkcije (ali pre session_start()), šta vam već više odgovara..

tada će vaša sesija biti dostupna na svim pod-domenima.vašeg-domena.com.
[ broker @ 08.06.2004. 05:53 ] @
Slabo cemo da diskutujemo kad je zombie vec dao resenje :)

Otprilike sam tako i zamisljao logicno resenje (analogno kolacicima) samo sto nisam uspeo da mu nadjem traga u manualu.

Probacu u toku dana, pa cu javiti da li radi.
[ noviKorisnik @ 08.06.2004. 07:11 ] @
Ista sesija na više domena?