zmienna session

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
Szymon123
Początkujący
Początkujący
Posty: 21
Dołączył(a): czwartek, 8 września 2011, 21:44

zmienna session

Post przez Szymon123 »

Witam
Mam takie pytanie. Jezeli tworze sesje to powstaje ID sesji. Skąd mamy pewnośc że jeżeli jest 1 mln użytkowników to ID się nie powtórzy??

W kursie PHP 5.3 została poruszona kwestia logowania. Jeżeli wpisze się w przeglądarkę content.php to mamy dostęp do zawartości bez danych użytkownika. Czy w praktyce aby temu zapobiec mozna uzyc warunku:

Code: Zaznacz cały

 if ($_SESSION['zalogowany'] == 1
{
to wyswietl strone content 
}
else {
wyswietl panel logowania
}
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: zmienna session

Post przez Morfidon »

Możliwości jest dużo więcej niż 1 mln, dokładnie nie wiem jak jest generowany, ale domyślam się że na podstawie jakiś danych losowych, a że tego typu funkcje mają tak ogromną ilość kombinacji to prawdopodobieństwo powtórzenia się jest praktycznie niemożliwe.

Można tak zrobić, sesja jest przypisana do danego użytkownika, więc (jeśli $_SESSION['zalogowany'] == 1) to te 1 jest tylko dla tego zalogowanego, oczywiście wcześniej trzeba ustawić tą zmienną sesyjną.
Szymon123
Początkujący
Początkujący
Posty: 21
Dołączył(a): czwartek, 8 września 2011, 21:44

Re: zmienna session

Post przez Szymon123 »

Dzięki za odpowiedź. Pozwolę sobie zapytać się jeśli można o jedną kwestię. Mam problem z czymś takim co przedstawię w krokach:

1) Użytkownik się wylogował zobaczył ekran wylogowałeś się poprawnie, czyli sesja została zniszczona tak jak w kursie.
2) Odszedł od komputera pozostawiając ekran wylogowałeś się poprawnie
3)Do jego kompa przyszedł kolega i kliknął wstecz wtedy pomimo tego iż firefox nie dostał polecenia zapamiętania haseł pyta się nas czy przesłać dane ponownie. Jeżeli klikniemy przesłać TO LOGUJEMY SIĘ NA KONTO TEGO CO ODSZEDŁ.

Moje pytanie brzmi czy można temu zaradzić? Wywoływanie zdarzenia blokującego po kliknięciu przycisku wstecz to chyba nie najlepszy pomysł.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: zmienna session

Post przez Morfidon »

Możesz na to zaradzić. Wystarczy stworzyć timer... jeśli nie było akcji (osoba jest dalej na tej samej stronie) przez określony czas np. 15 minut to wartość zmiennej świadczącej o zalogowaniu np. $_SESSION['zalogowany'] zmieniasz na 0 lub całkowicie usuwasz daną sesję (tak w sumie najlepiej).

Pomimo faktu, że "kolega" odzyska sesję, nie będzie już mógł wykonać niczego no bo go w końcu wylogowało.

Dojdź do lekcji gdzie omawiam czas, a napiszesz to spokojnie.
Post Reply