Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesje
Forum PHP.pl > Forum > PHP
GrayHat
Witam.
Mam taki problem.
Chcę założyć sesję z jednej subdomeny i chcę aby była widoczna w obrębie całej domeny, więc lecimy z .htaccess:

Kod
php_value session.cookie_domain '.local'


i to powinno wystarczyć.
Ale jednak nie...
Ciacho do sesji ustawiane jest na domene xxx.local czyli subdomenę, z której otwierałem sesję... A powinno na .local....
session_get_cookie_params pokazuje mi dobrze, że powinno ustawić na .local...

W czym jest problem??
Kocurro
Domena nie może być "local" poczytaj o ciastkach - domena musi składać się z minimum dwóch części czyli poprawną domeną jest już "local.pl" i dla niej będzie działać.

pozdr.
webdice
Spróbuj

  1. <?php
  2. ini_set("session.cookie_domain", ".domain.pl");
  3. ?>
GrayHat
@Kocurro: solved winksmiley.jpg thx
Kocurro
GrayHat - nie ma problemu smile.gif Sam się z tym kiedyś męczyłem tydzień czasu ;p (a stoi jak wół napisane w dokumentacji ciastek biggrin.gif).
GrayHat
Jeszcze jedno pytanie.
Okazało się, że muszę utrzymać sesję w obrębie dwóch domen głównych (serwisA.local i serwisB.local).
Jakieś koncepcje?
Kocurro
Najprościej poprzez obrazek transparent 1x1 crossujący. Czyli na stronie serwisA dajesz obrazek pochodzący z serwisB, jako src podajesz np.

http://serwisB.local/sess.php?sid=345243a532345

Skrypt sess.php zapisuje ciasteczko dla serwisA oraz zwraca przeźroczysty obrazek. W bazie zapisujesz informacje o tym dla których serwisów ciastko jest ustawione ( ten sposób jak zobaczysz, ze już jest ustawione dla crosowanego serwisu nie będziesz musiał wstawiać obrazka).

To taka ogólna koncepcja - dokładniejszą opiszę dzisiaj wieczorem i dam jako artykuł u mnie na stronce. Mam nadzieję, że chociaż trochę pomogę tym wyjaśnieniem smile.gif

Takie działania wychodzą najlepiej jak sesje przechowujesz w bazie wtedy możesz dać dwa różne indeksy, każdy dla innego serwisu i łatwo rozpoznajesz czy dla danego serwisu już ustawiono czy jeszcze nie biggrin.gif

pozdrawiam,
Łukasz
GrayHat
@Kocurro: koncepcja taka średnia. nie chcę ingerować zbytnio w serwisy zależne od matki... pozatym serwisA jest tym samym co serwisB (ten sam kod tylko inna domena)
Kocurro
Inny sposób to zabawa ajaxem ... ale sprowadza się do tego samego.

Abyś mógł w domenie serwisB ustawić ciastko musisz wywołać skrypt pod tą domeną.

Można także bawić się redirectami - po zalogowaniu redirecty w kółeczku po wszystkich serwisach by ustawić ciastka. Ale to może nie być zbyt dobry pomysł.

Ewentualnie ustawianie ciastka dopiero kiedy wejdziesz na stronę serwisu ... ale to też jest rozwiązanie podobne ...

Nie spotkałem się z lepszą koncepcją i podejrzewam, że raczej się nie spotkam.

Jakbyś znalazł lepsze rozwiązanie będe wdzięczny za informację.

pozdrawiam,
Łukasz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.