03. 05. 2011. | #1 |
Banned
Expert
Datum učlanjenja: 29.09.2007
Poruke: 458
Hvala: 131
71 "Hvala" u 44 poruka
|
SESSION kroz više subdomena
Potreban mi je savet kako da nateram PHP da sesije budu na nivou domena a ne subdomena i da rešenje ne bude putem cookies.
Video sam na netu neka rešenja putem baze podataka ali mi se čini da to radi isto na nivou subdomena? ... |
03. 05. 2011. | #2 |
I'm a PC too.
Wrote a book
Datum učlanjenja: 06.06.2005
Lokacija: Kanada
Poruke: 1.354
Hvala: 82
130 "Hvala" u 89 poruka
|
Možeš ovako da uradiš, nije vezano za PHP.
Na svaki GET (ili POST) zahtev dodaš ID (svaki korisnik ima svoj ID koji slučajno generišeš kada se uloguje). I kada to dođe na server, pogledaš taj ID i dovučeš podatke za sesiju iz baze. Znači, npr. svaki link bi izgledao ovako nekako: <a href="blablabla&SessionID=12331"> I to je to. Naravno taj isti ID stavljaš i u POST zahteve, itd. E da, ostaje ti i da se pobrineš o sigurnosti, da ne može svako da samo ukuca neki ID tek tako..
__________________
Commercial-Free !!! Poslednja izmena od degojs : 03. 05. 2011. u 02:52. |
"Hvala" degojs za poruku: |
03. 05. 2011. | #3 |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
|
u sustini trebas samo da nateras browser da ucita nesto sa svih subdomena [na kojima hoces sesiju] - recimo kobajagi sliku da ucita [ili javascript], ali ga umesto slike navedes na php koji proveri parametre koje si mu prosledio i set-uje cookie na tom poddomenu.
tipa: <img src = "http://poddomen.sajt.com/login.php?session=7899865545" /> login.php proveri da li postoji ta sesija u bazi - i ako postoji onda setuje cookie na tom poddomenu. pozeljno da login.php vrati 1x1 providnu png/gif sliku |
"Hvala" Peca za poruku: |
03. 05. 2011. | #4 |
Banned
Expert
Datum učlanjenja: 29.09.2007
Poruke: 458
Hvala: 131
71 "Hvala" u 44 poruka
|
Nešto sam guglao pa sam našao ovo rešenje.
session_set_cookie_params(0, '/', '.some_domain.com'); obavezno ubaciti pre session_start(); a ako razvijate aplikaciju na test serveru pa vam je potrebno da sistem radi na više domena(npr u lokalu exam.com a na serveru example.com), pre svega ovoga ubacite ovaj kod da bi ste razdvojili subdomain i domen, a lepo radi ako je subdomen sastavljen od vise reci povezanih tackama npr: my.example.example.com $domain = explode('.', $_SERVER['SERVER_NAME']); $domain = array_reverse( $domain ); $SUBDOMAIN = null; if( count( $domain ) > 2 ) { $a = $domain; array_shift($a); array_shift($a); $SUBDOMAIN = implode('.', $a); $_SERVER['SERVER_NAME'] = $domain[1].'.'.$domain[0]; } if( $SUBDOMAIN == null ) { $SUBDOMAIN = "www"; } session_set_cookie_params(0, '/', '.'.$_SERVER['SERVER_NAME']); session_start(); @degojs && @Peca Thanks )) |
04. 05. 2011. | #5 | |
Super Moderator
Knowledge base
Datum učlanjenja: 02.10.2006
Lokacija: Niš
Poruke: 1.618
Hvala: 263
275 "Hvala" u 104 poruka
|
a nadjoh upravo i ovo, da funkcija setcookie moze da set-uje vrednost i za poddomene;
http://php.net/manual/en/function.setcookie.php Citat:
to ti isto vazi i za sesiju. a resenje koje sam izneo gore se koristi samo ako hoces sesiju da prebacis na skroz razlicite domene. Poslednja izmena od Peca : 04. 05. 2011. u 01:35. |
|
04. 05. 2011. | #6 |
Banned
Expert
Datum učlanjenja: 29.09.2007
Poruke: 458
Hvala: 131
71 "Hvala" u 44 poruka
|
extra
|
09. 05. 2011. | #7 |
profesionalac
Qualified
|
prethodno vazi samo ukoliko su vam poddomeni na istom serveru...
|
09. 05. 2011. | #8 |
Banned
Expert
Datum učlanjenja: 29.09.2007
Poruke: 458
Hvala: 131
71 "Hvala" u 44 poruka
|
|
|
|