Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przenoszenie sesji między serwisami, Ta sama sesja na rożnych serwerach
wojto
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam,
Tworze serwis, ktory ma sie skladac z kilku podserwisow, np. profil.xxx.pl (glowna strona serwisu), gry.xxx.pl, mp3.xxx.pl itp. Kazdy z tych podserwisow bedzie umieszczony na innym serwerze, ale maja miec wspolna baze danych z profilami uzytkownikow.
Korzystanie ze wspolnej bazy danych z profilami mam juz zrobione, ale problem jest podczas logowania, bo podczas przechodzenia pomiedzy serwisami na kazdym z nich tworzona jest nowa sesja, a ja chce, aby ciagle byla ta sama sesja.

Narazie rozwiazalem to w ten sposob, ze identyfikator sesji przekazuje w linku, czyli np. bedac w serwisie gry.xxx.pl klikajac w link profil.xxx.pl/sesja=34rh43uirh34ruih34rui43rhr34r wchodze na serwis profilu i tam sobie skryptem pobieram i tworze sesje o identyfikatorze z tego linka.
Problem pojawia sie, gdy np. zaloguje sie w profil.xxx.pl i nie przejde do podstrony po linku gry.xxx.pl?sesja=3urhi34uhr3i4urh3i4rhu tylko wpisze bezposrednio gry.xxx.pl, wtedy tworzy losowa sesje.

Probowalem korzystac z session.cookie_domain, ale ono moze korzystac z jednoelementowych adresow z .com, np. xxx.com, musialo by byc cos.xxx.com.

Czy jest jakis inny sposob, aby logujac sie na jednym serwisie byc jednoczesnie zalogowanym na innym? Oba serwisy oczywiscie na innych serwerach :/

Dzieki za ewentualne odpowiedzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Ok, jeżeli tylko wszystkie strony znajdują się na jednej domenie to da się to zrobić. Jeśli używasz własnego session handlera, to używasz zapewne metody setcookie" title="Zobacz w manualu php" target="_manual().

Cytując:
Cytat(http://php.net/manual/en/function.setcookie.php)
To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com  will make the cookie only available in the www  subdomain. Refer to tail matching in the spec for details.


Czyli w twoim przypadku:
  1. <?php
  2. setcookie('name', 'value', expire, '/', '.xxx.pl');
  3. ?>


Natomiast jeśli strony znajdują się na różnych domenach, to jesteś ugotowany (nie wydaje mi sie żeby można było coś wtedy zrobić).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 15:11