![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 19:47 |