Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sesja z cookie ...
Forum PHP.pl > Forum > PHP
andrzej001
My sesja działa na localhost tylko. Pproblem jest kiedy ja testuję ja on rzeczywistym serwerze ( WinXP Prof with Apache 2.0.54 + PHP5-as a module)
The problem is:

Za kazdym razem gdy the session_start( ) function jest wywolywana the nowy sesji ID jest kreowany. Wyglada to tak jakby session ID nie byl zachowywany w Cookie.

wszystko wydaje sie być skonfigurowane poprawnie
1. po stronie klienta ( przegladarki ) the cookie is Enabled,

2. the php.ini
session.save_handler = files
session.use_cookie = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = / ???
session.cookie_domain = ???
session.use_trans_sid = 0

Czy moze mi ktos pomoc, co moze byc jeszcze zle ...

Dziekuje
dtb
print_r ($_COOKIE); // sprawdz czy takie ciasteczko zostalo wyslane
qbuz
Cytat
Za kazdym razem gdy the session_start( ) function jest wywolywana

Za każdym razem - tzn.? Być może w jednym skrypcie, przy jednym wywołaniu?
Jeśli tak, to tu jest błąd.

Pamiętaj, że $_COOKIE jest dostępne dopiero po przeładowaniu strony.
Ciastko musi już istnieć, gdy wywoływany jest skrypt.


PS: nie możesz pisać normalnie? ;]
andrzej001
Cytat(qbuz @ 2005-12-21 03:30:36)
Cytat
Za kazdym razem gdy the session_start( ) function jest wywolywana

Za każdym razem - tzn.? Być może w jednym skrypcie, przy jednym wywołaniu?
Jeśli tak, to tu jest błąd.

Pamiętaj, że $_COOKIE jest dostępne dopiero po przeładowaniu strony.
Ciastko musi już istnieć, gdy wywoływany jest skrypt.


PS: nie możesz pisać normalnie? ;]


Dziękuję za odpowiedz i uwagi,
Dolacze fragment testowych 2 skryotów, w któeych nie wiem dlaczego ale sesja nie działa. Funkcja session_start() gdy jest wywolywana to generuje nowy SessionID.

session_test.php
  1. <?php
  2.  
  3. $sess_id = session_id();
  4.  
  5. echo "Twoj identyfikator Sesji = <b>" . $sess_id . "</b><br>";
  6.  
  7. $_SESSION['var0'] = "test_0";
  8. $_SESSION['var1'] = "123";
  9. $_SESSION['var2'] = "-543";
  10.  
  11. echo "<p></p>";
  12. print ("<u>Zarejestrowałem TRZY zmienne w sesji</u><br>");
  13. echo " var0 = <var><b>" . $_SESSION['var0'] . "</b></var><br>";
  14. echo " var1 = <var><b>" . $_SESSION['var1'] . "</b></var><br>";
  15. echo " var2 = <var><b>" . $_SESSION['var2'] . "</b></var><br>";
  16.  
  17. print "Kliknij poniższy link aby przejsc na inna strone i sprawdzić czy dane zapis
    ane w sesji sa zapamietane<br>"
    ;
  18. print "<a title='next_page' href=http://pp/session_test1.php >nastepna_strona</a>";
  19.  
  20. ?>


i
session_test1.php
  1. <?php
  2.  
  3. echo "<p>jezeli widzisz te same wartosci co na poprzedniej stronie to jest OK</p>";
  4. print ("<u>Zarejestrowane TRZY zmienne w sesji</u><br>");
  5. echo " var0 = <var><b>" . $_SESSION['var0'] . "</b></var><br>";
  6. echo " var1 = <var><b>" . $_SESSION['var1'] . "</b></var><br>";
  7. echo " var2 = <var><b>" . $_SESSION['var2'] . "</b></var><br>";
  8.  
  9. print "Kliknij poniższy link aby usunac dane z sesji<br>";
  10. print "<a title='next_page' href=http://pp/session_test2.php >usun_dane_z_sesji</a>";
  11.  
  12. ?>


Z gory dziękuję
qbuz
po wywolaniu skryptu

session_test.php

Sprawdz w przegladarce (gdzies tam ustawienia >> ciasteczka) czy cookie zostalo utworzone.
Mysle, ze 'session_start' nie znajduje aktualnego ID sesji, dlatego tworza nowa sesje z nowym ID.

(Byc moze masz wylaczone/ograniczone tworzenie cookies w ustawieniach swojej przegladarki)

PS: u mnie te skrypty dzialaja ok (zmienilem tylko HREF linku usuwajac to "http://pp/")
andrzej001
Cytat(qbuz @ 2005-12-25 07:42:03)
po wywolaniu skryptu

session_test.php

Sprawdz w przegladarce (gdzies tam ustawienia >> ciasteczka) czy cookie zostalo utworzone.
Mysle, ze 'session_start' nie znajduje aktualnego ID sesji, dlatego tworza nowa sesje z nowym ID.

(Byc moze masz wylaczone/ograniczone tworzenie cookies w ustawieniach swojej przegladarki)

PS: u mnie te skrypty dzialaja ok (zmienilem tylko HREF linku usuwajac to "http://pp/")

czy sprawdzałeś to na innym rzeczywistym serwerze czy na 'localhost'. Na localhost wszystko dziala pieknie ale na innym serwerze ( Apache 2.0.54 + PHP5.0 + WinXP Prof ) nie działa, tzn. za kazdym wywołanie session_start(0 jest tworzony nowy identyfikator sesji.
a przy okazji gdzie mozna zanalezc cookie w ktorym jest przechowywany session_id.

Dziekuje z gory
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.