zmienna session

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.

zmienna session

Postprzez Szymon123 » poniedziałek, 20 lutego 2012, 20:19

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:
Kod: Zaznacz cały
if ($_SESSION['zalogowany'] == 1
{
to wyswietl strone content
}
else {
wyswietl panel logowania
}
Szymon123
Początkujący
Początkujący
 
Posty: 21
Dołączył(a): czwartek, 8 września 2011, 21:44

Re: zmienna session

Postprzez Morfidon » wtorek, 21 lutego 2012, 17:25

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ą.
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48

Re: zmienna session

Postprzez Szymon123 » czwartek, 23 lutego 2012, 13:37

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ł.
Szymon123
Początkujący
Początkujący
 
Posty: 21
Dołączył(a): czwartek, 8 września 2011, 21:44

Re: zmienna session

Postprzez Morfidon » czwartek, 23 lutego 2012, 22:45

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.
Morfidon
Administrator
Administrator
 
Posty: 593
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48


Powrót do PHP

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość

cron