![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 16.08.2005 Skąd: Gniezno Ostrzeżenie: (0%) ![]() ![]() |
Sprawa wygląda tak, że jest jedna podstrona na której zapisuje się i są wyświetlane dane z sesji. Potem jest druga podstrona na której jest tak samo - dokładniej chodzi o formularz, taki z paroma krokami.
Założyłem sobie, że na wypełnienie jest jakiś określony czas, po czym sesja wygasa i przekierowuje przy próbie przejścia do następnego kroku, do pierwszego kroku formularza. Oto część kodu odpowiedzialna za to (pierwszy krok formularza nie ma 'view', stąd ta część warunku. CODE ini_set("session.gc_maxlifetime","60"); ini_set("session.cookie_lifetime", "60"); ini_set("session.gc_probability", "100"); if(!isset($_REQUEST[session_name()]) && empty($_GET['view'])) { session_start(); } if(count($_SESSION) == 0 && !empty($_GET['view'])) { header("Location: http://www.stronka.pl/katalog/zamowprogram.php5"); } Problem polega na tym, że tablica $_SESSION nie zeruje się cała, co jest o tyle dziwne, że jak sesja wygasa (te 60 sekund to tylko dla moich testów), to ten drugi warunek jest spelniony i przekierowanie następuje, więc teoretycznie tablica jest pusta. Tylko, że jak już znajdę się w pierwszym kroku i wyświetlę sobie tablicę $_SESSION to są tam dane z drugiego kroku, gdy więc przejdę do drugiego kroku mam już coś wpisane, choć tak być nie powinno (jakim cudem ten warunek by się spełnił?) Nie rozumiem co jest grane, chyba, że czegoś tutaj nie wiem. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
jeżeli ten warunek się nie spełni to nie wywołujesz session_start(), no i wtedy count($_SESSION) = 0; -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 16.08.2005 Skąd: Gniezno Ostrzeżenie: (0%) ![]() ![]() |
Tak jest (jeśli dobrze zrozumiałem to co napisałeś), tylko skąd nagle na pierwszej podstronie biorą się dane z sesji z drugiej podstrony, kóra wygasła, a nie ma danych z pierwszej podstrony?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
wg tego co wyczytałem w manualu, to ustawienia rodzaju:
obowiązują tylko lokalnie dla skryptu w którym zostały wywołane, czyli albo musisz to na stałe wpisać do php.ini, abo wywoływać na początku każdego pliku w którym korzystasz z sesji... EDIT: czy ty przypadkiem nie stosujesz tego żeby mieć różne zestawy zmiennych sesji na różnych podstronach serwisu ![]() w jednym pliku np.
a w innym:
i wtedy każda podstrona będzie miała swój niezależny zestaw zmiennych sesji Ten post edytował nevt 29.02.2008, 10:26:31 -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 16.08.2005 Skąd: Gniezno Ostrzeżenie: (0%) ![]() ![]() |
To jest wywołane na początku każdego skryptu, bo podstronki są po prostu przełączane za pomocą switcha z jednego pliku. Chyba, że to przekierowanie coś miesza?
Ten post edytował Raph 29.02.2008, 10:42:20 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:04 |