![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
ustawiłem sobie przy wylogowywaniu z formularza:
dzięki temu zmienna przekazująca nazwę loginu zostanie zniszczona a następnie zostane przekierowany do formularza logowania. I tak: gdy wykona się powyższy kod i kliknę w przycisk przeglądarki "WSTECZ" zobaczę komunikat: Kod Uwaga: Strona wygasła Żądana strona została utworzona przy wykorzystaniu informacji przesłanych w formularzu. Strona nie jest dostępna. Ze względów bezpieczeństwa, na wszelki wypadek, program Internet Explorer nie przesyła ponownie informacji. Aby ponownie przesłać informacje i ponownie oglądać stronę sieci Web, kliknij przycisk Odśwież. ...i było by SUPER, gdyby nie fakt, że ponowne kliknięcie "WSTECZ" pokazuje stronę gdzie zmienna $_SESSION['login'] pokazuje się z wartością, którą chciałem zniszczyć/usunąć/odrejestrować. Czy nie ma jakiegoś polecenia, które całkowicie wyczyści wartość zmiennej sesyjnej? W manualu jest napisane, że wystarczy wpisać unset('zmienna'). |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
ogolnie do niszczenia zmiennych sesyjnych jest session_unregister" title="Zobacz w manualu PHP" target="_manual, i w tym wypadku musisz tak zrobić.
W manualu poczytaj sobie komentarze ludzi co do tej funkcji. Ten post edytował dasko 17.03.2005, 13:04:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
Wiedziałem, że taką odpowiedź dostane (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
w namual jest napisane tak: jeżeli używasz $_SESSION (lub $HTTP_SESSION_VARS), nie używaj session_register(), session_is_registered() i session_unregister(). Daletgo używam unser(). Dla przekory próbowałem też z session_unregister(). - Efekt jest dokładnie ten sam (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat jeżeli używasz $_SESSION (lub $HTTP_SESSION_VARS), nie używaj session_register(), session_is_registered() i session_unregister(). Użycie $_SESSION nie wyklucza użycia tamtych, po prostu nie można dać:
wydaje mi się że o to tam chodzi. Cytat It took me some time to figure this out: If you have register globals off, you probably use $_SESSION to acces you session vars. If you want clear a sessionvar inside the current script, but also in next pages, do this as follows: session_unregister('varname'); Otherwise varname will keep returning either inside the script, or on the next pages. unset($_SESSION['varname']) will only unset the session var on the current page. Skoro gościu tak napisał, powinno działać... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
... i i tak jak kliknę 2 razy "WSTECZ" to zmiwnna $_SESSION[login] odzyskuje swoją wartość (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Zeby usunac sesje najpierw musi ona istniec, wiec na poczatku przed unset'em musisz miec session_start(), masz ?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 24.07.2003 Ostrzeżenie: (10%) ![]() ![]() |
mam (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
wcisnąłem do tego pliku już chyba wszystko co się dało i efekt dalej jest taki sam (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Ten post edytował czezz 17.03.2005, 16:54:03 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 12.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie tak dawno sam miałem z tym problem i stwierdziłem że to raczej jest problem po stronie przeglądarki niż samego php, która to uparczywie próbuje wysyłać zmienne z formularza i tym samym ponownie zalogować użytkownika.
Znalazłem na to małe rozwiązanie, w pewnym sensie oszukuję przeglądarkę - u mnie działa - więc spróbuj tego: zaraz po zalogowaniu jak tworzysz sobie zmienna sesji: ja to robie bez uzycia session_register, a mianowicie:
przekierowujesz użytkownika do nowej lokalizacji przy pomocy skryptu:
Wówczas po wylogowaniu:
jak dajesz w przeglądarce wstecz nagle okazuje się że już nie chce wysyłać ponownie danych i jesteś poprawnie wylogowany. Szczerze mówiąc jestem ciekawy czy zadziała to u Ciebie bo zdziwiło mnie kiedy zadziałało u mnie pozdrawiam |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 19.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
A co z ciasteczkami? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 1 Dołączył: -- Skąd: Rogożnik /K-ce/ Ostrzeżenie: (0%) ![]() ![]() |
Witam
Ja zawsze robię tak, że po poprawnym zalogowaniu wysyłam użytkownika do nowej podstrony czy to przez header(), czy przez JS (jak @adif). Powoduje to taki efekt, że po wymuszonym przeskoku do innej podstrony (inną może być również obecna) jest taki, że dane z formularza nie są umieszczone w tablicy wysyłanej z przeglądarki. Nie ma wówczas żadnego problemu z przycikami wstecz itp. Nie ma też takiego efektu po zalogowaniu, że jak klikniemy F5 to ponownie będzie pytał, czy wysłać dane z forma. Działą na 100% - bo wszędzie to stosuje. |
|
|
![]() ![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 13.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
jezeli moge dodac swoje 3grosze to zawsze mozna pokombinowac inaczej - bo jezeli chodzi tylko o wylogowanie poprawne uzytkownika to zawsze mozna zrobic tak:
wiem ze to troche na chama (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) ale dziala w polaczeniu z lista uzytkownikow w MySQL-u i nie mialem jakies wiekszych problemow z tym narazie;) pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:56 |