Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Trzymanie przechwyconej sesji
darney
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 21.08.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Witam.
Wiem że ten temat był poruszany ale nie znalazłem kompletnego wyjaśnienia jaką metode zastosować. Tłumacze już o co chodzi.

Chodzi o powrót do strony na której byliśmy kiedy zostaliśmy poproszeni o zalogowanie

User chce wejść ze strony nauka.php w odpowiedni dzial np nauka.php?lekcja=1;
Skrypt przenosi do login.php prosi o zalogowanie się więc w formularzu tworze ukryte pole
hidden gdzie trzymam tam $_SERVER['HTTP_REFERER'];

Wszystko działa wyśmienicie po zalogowaniu ustawiłem sobię header który przenosi mnie do poprzedniej strony nauka.php?lekcja=1;

Problem który mam i chce rozwiązać i czytałem też że to nie takie proste. Mianowicie

Kiedy popełnimy bład w formularzu strona się przeładuje i w hidden polu znajdzie sie wartość adresu czyli strony logowania login.php

Pytanie jest takie. W jaki sposób zmusić za pomocą sesji do zapamiętania na stałe jednorazowego adresu by nie tracić go przy nieudanym logowaniu.

Ten post edytował darney 25.01.2012, 14:52:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Podczas wejścia na stronę logowania, stwórz sobie warunek który będzie sprawdzał czy dany klucz w tablicy sesji istnieje. Jeżeli nie, to tworzysz taki klucz i przypisujesz do niego referer. Jeżeli refererem będzie strona logowania. To wcześniej musisz umieścić sobie warunek, że do strony mają dostęp wszyscy, prócz zalogowanych i jeżeli ktoś wejdzie zalogowany, to przekierujesz go na stronę główną.

U siebie zrobiłem to tak, że w momencie kiedy jakaś podstrona wymaga uwierzytelnienia, tuż przed samym przekierowaniem na stronę logowania, w sesji jest zapisywany aktualny adres, następnie użytkownik jest przekierowany na stronę logowania. Podczas prawidłowego logowania, na samym końcu kiedy już wszystkie niezbędne operacje się wykonają (aktualizacja ostatniej wizyty użytkownika, aktualnego adresu IP, aktualizacja w tabeli z ludźmi którzy są aktualnie online itp) to jest wcześniej w sesji zapamiętany adres jest przypisywany do zmiennej, a sam adres z sesji jest usuwany. Następnie adres przypisany do zmiennej, jest przekazywany do funkcji która przekierowuje użytkownika na podany adres.

Rozwiązań problemu jest znacznie więcej, bo taki adres możesz również przekazać do adresu i następnie podczas poprawnego logowania pobrać z adresu ten adres i na podany adres przekierować. Osobiście wybrałem sesję, bo wiem że z sesji mi ten adres przypadkiem nie zniknie (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 19:47