Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z wylogowaniem
Forum PHP.pl > Forum > PHP
adif
Witam wszystkich...

problem jest następujący...
zrobiłem w swoim projekcie logowanie użytkowników na sesjach. W momencie logowania gdy dane wpisane w formularzu zgadzaja się z tymi pobranymi z bazy danych tworze zmienną sesyjną

$_SESSION['user'] = $login;

następnie za każdym razem sprawdzam czy użytkownik jest zalogowany:
----------
function log_uzyt()
{
global $_SESSION;
if (isset($_SESSION['user']))
return true;
else
return false;
}
----------------
I wszystko niby jest pięknie do momentu wylogowywania użytkownika co robie w następujący sposób:

unset($_SESSION['user']);
session_destroy();

Po wywołaniu tych poleceń pokazuje mi że użytkownik rzeczywiście jest wylogowany ale:

kiedy daje w przeglądarce <<cofnij ponownie zaczynaja być wysyłane dane z formularza i użytkownik jest automatycznie zalogowany ponownie co nie powinno mieć miejsca.

Podsumowując co należy zrobić aby zabezpieczyć przed ponownym wysłaniem danych z formularza lub po prostu ktoś ma pomysł jak dobrze zrealizować wylogowanie użytkownika żeby nie było pod żadnym pozorem możliwosci nieautoryzowanego zalogowania??

wielkie dzięki z góry
dasko
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.

To notka z manuala. Zawsze warto je czytać smile.gif
adif
rzecz jest niestety w tym że zmienna sesji jest usuwana i na kolejnych podstronach użytkownik jest wylogowany tak jak chciałem, ale kiedy np:

nie wyłącze okna przegladarki i odejdę od kompa i kiedy podejdzie nowa osoba i zacznie uporczywie klikać <<wstecz w przeglądarce to w pewnym momencie przegladarka dojdzie do miejsca gdzie poprzednio się logowałem i wtedy prześle dane z formularza sama i automatycznie zaloguje kogoś z danymi wpisanymi przy poprzednim logowaniu
NuLL
Po pierwszym logowaniu można dopisać do danych sesyjnych że formularz wysłano i późiej sprawdzać to zmienną.
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.