Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z sesjami i cookie
Forum PHP.pl > Forum > Przedszkole
eXtendeD
Witam. Mam pewne problemy, których nie potrafię rozwiązać. Napisałem sobie w php, 3 skrypty, które łącznie załatwiają mi zamawianie on-line. Użyłem do tego mechanizmu sesji. Wygląda to tak, że najpierw klient wybiera sobie podzespoły do koszyka, następnie przechodzi do kolejnego skryptu gdzie podaje swoje dane i następnie potwierdza rejestracje i trafia do ostatniego skryptu gdzie wszystkie dane zostają zapisane do bazy. I właśnie w tym ostatnim skrypcie jest link, który pozwala powrócić na pierwszą stronę (ten pierwszy skrypt). Kiedy użyję tego linka to przenosi mnie na pierwszy skrypt php ale wciąż jest ten sam numer sesji. Probówałem zabezpieczyć się przed zapisywaniem stron do cache'a przeglądarki (używam IE i Opery) stosując odpowiednie wpisy w meta lub headery w php jak poniżej w przykladzie. Ale to nie skutkuje. Bo i tak pamięta poprzedni numer sesji, a baza jest tak skonstrułowana, że za każdym razem wymagany jest inny numer sesji. Kiedy zamknę przeglądarkę i uruchomię jeszcze raz to wówczas dopiero przyznawany jest nowy numer sesji. Użyłem też polecenia do usuwania cookies w ostatnim skrypcie,ale nie wiem czy ono w ogóle działa, bo w Operze po wykonaniu się skryptu wciąż pokazuje ciasteczko w menedżerze ciasteczek :/

Początek ostatniego skryptu wygląda tak:
  1. <?
  2. header(&#092;"Cache-Control: no-store, no-cache, must-revalidate\"); 
  3. header(&#092;"Cache-Control: post-check=0, pre-check=0\", false);
  4. header(&#092;"Pragma: no-cache\");
  5. session_cache_limiter ( 'nocache' );
  6. setcookie (&#092;"PHPSESSID\", \"\", time() - 3600);
  7. ?>
  8. <html>
  9. <head>
  10. <title>
  11. Potwierdzenie Zakonczenia
  12. </title>
  13. </head>
  14. <body>
  15. <?
  16. //Tutaj skrypt robi swoje. Jest na pewno dobrze, to nie zamieszczam.
  17.  
  18. //i na końcu zakończenie sesji
  19. }
  20. ?>
  21. <a href=\"zamowienia.php\"><Center>Powrót do panelu zamówień</Center></a>
  22. </body>
  23. </html>

Po kliknięciu na ten link wyżej przenosi mnie na pierwszy skrypt ale pamięta stary numer sesji.

Początek pierwszego skryptu wygląda podobnie:
  1. <?php
  2.  
  3. header(&#092;"Cache-Control: no-store, no-cache, must-revalidate\"); 
  4. header(&#092;"Cache-Control: post-check=0, pre-check=0\", false);
  5. header(&#092;"Pragma: no-cache\");
  6. session_cache_limiter ( 'nocache' );
  7. //session_set_cookie_params(0);
  8. //session_set_cookie_params(0) - to chyba odpowiada za usuwanie cookie 
  9. //dopiero po zamknięciu przeglądarki
  10.  
  11. ?>


-------------

Więc prosiłbym o pomoc. W razie czego nawet przez gg (nr 3101555) albo mailem extended@wp.pl. Dzięki.


---
nospor
Jim
session_unregister :

Cytat
Uwaga!
Ta funkcja nie usuwa zmiennej globalnej o nazwie nazwa, a jedynie zapobiega zapisaniu tej zmiennej jako części sesji. Jeśli chcesz usunąć odpowiednią zmienną globalną, musisz użyć funkcji unset().


więc wrzuć na sam koniec samo unset(); i powinno zadzialac smile.gif
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.