Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Nie trzymanie sessji
Forum PHP.pl > Forum > Przedszkole
propage
Używam takiego kodu do inicjiowania sesji:

  1. <?php
  2. if (isset($_COOKIE['sesja'])) {
  3. session_id($_COOKIE['sesja']);
  4. }    
  5.        
  6.        session_set_cookie_params(time()+25920000);
  7.        session_start();
  8.        $sesja = session_id();
  9.      
  10.    
  11.        setcookie(COOKIE_NAME, "$sesja", time()+25920000, '/', '.domena.pl');
  12. ?>


Sesja działa dobrze jednak jeśli ktos wpisuje adres "domena.pl", jeśli ktoś wchodzi na strone wpisując adres "www.domena.pl" sesja nie działa. Jaka jest tego przyczyna?
Axexis
Sesja domyślnie zapisuje się do określonej domeny. (www.php.pl to nie php.pl i odwrotnie).

Do .htaccess możesz spróbować dodać:
Kod
php_value session.cookie_domain ".domena.pl"



domena.pl zamień na własną (kropka ma być tam ; ))
erix
Ale przecież można wszystko ustawić przez session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual, po co kombinować z htaccess/php.ini?
propage
Próbowałem na 2 sposoby to znaczy:

dodałem do pliku php.ini (dodajac to do hta. cala strona przestala dzialac):
php_value session.cookie_domain ".domena.com"

i
  1. <?php
  2. session_set_cookie_params(time()+25920000, '/',  '.'.$config['domain']);
  3. $sesja = session_id();    
  4. setcookie(COOKIE_NAME, "$sesja", time()+25920000, '/', '.'.$config['domain']);
  5. ?>


żaden sposób nie pomógł.
erix
A co masz w stałej COOKIE_NAME?
propage
tekst "procms"
erix
A masz ustawioną własną nazwę sesji?

Z tego, co widzę, to wynajdujesz koło na nowo z tym ciastkiem, a wystarczyłoby IMHO session_name" title="Zobacz w manualu PHP" target="_manual.
propage
usunołem wszystko cały kod odpowiedzilny za start sesji wygląda teraz tak

  1. <?php
  2. session_set_cookie_params(time()+25920000, '/', '.'.$config['domain'] );
  3. ?>


Ciągle nie działa, na próbę ustawiłem '.www.'.$config['domain'] zamiast '.'.$config['domain'], ale też co dziwne nie działa strona www.domain.pl a działa domain.pl hmm
erix
Ok, pokaż, jakie ciastko dostaje przeglądarka.
propage
Widzę zę tworzy się 5 ciastek o nazwach:
PHPSESSID
__utmb
__utmc

...

Tylko te "PHPSESSID" ma domenę ".www.domain.pl", reszta ma ".domain.pl"
erix
Spróbuj może tak:
  1. <?php
  2. session_set_cookie_params(time()+25920000, '/', '.'.$config['domain'] );
  3. session_name(COOKIE_NAME);
  4. ?>
slewin
Strasznie to zagmatwane . Może zamiast
  1. <?php
  2. session_set_cookie_params(time()+25920000, '/', '.'.$config['domain'] );
  3. ?>

daj
  1. <?php
  2. session_set_cookie_params(time()+25920000, '/', '.'.$_SERVER['HTTP_HOST']);
  3. ?>
Suh
Witam, nie chciałem zakładać nowego tematu, a ten tematyką pasuje do mojego problemu.

Sprawa wygląda tak.. piszę skrypt z obsługą sesji. Wczoraj testowałem funkcjonalność i wszystko chodziło.. z resztą nie tylko wczoraj ale już od dawna. W tej chwili pracuje nad nowsza wersją i po prostu ulepszam silnik starszej.

Problem polega na tym, że nie mogę przekazać zmiennych sesyjnych między plikami, co wcześniej odbywało się bez problemów.
Po kliku próbach "debugowania" na różne sposoby, sprawdzania dostępności zmiennych itp, napotkałem coś takiego:

Warning: Unknown: w in Unknown on line 0

Warning: Unknown: F in Unknown on line 0

ocb ? Może ktoś mi wyjaśnić ? może ktoś już coś takiego spotkał..

pzdr
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.