![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 9.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mama zamiar zrobić obsługę sesji na mysql-u. Trochę poczytałem coś tam już wiem... Ale naszła mnie taka refleksja. Czy koniecznie muszę korzystać z wbudowanego mechanizmu tj. session_start, session_set_save_handler (open, write, gc, destroy,...), bo skoro i tak już muszę się w to bawić, czy nie lepiej od początku napisać samemu? Może jest coś o czym nie wiem, a co daje przewagę standardowemu rozwiązaniu? I przy okazji. Wiecie może jak generowane jest ID sesji. Wiem, że losowo, tylko czy jest to zwykły random (coś mi się obiło, ze nie do końca losuje liczby losowe - chyba w pascalu tak było) lub może jakiś bardziej zaawansowany algorytm? Z góry dziękuję. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 12.04.2007 Skąd: Błonie Ostrzeżenie: (0%) ![]() ![]() |
Możesz użyć SUPER banalnej metody "trzymania sesji" która wygląda mniej więcej tak:
Najpierw określasz czas takiej niby sesji:
Przy rejestracji takiej sesji (np. podczas pierwszego logowania) korzystasz z takiej funkcji:
PHP tworzy za pomocą funkcji Date() uniksowy "odcisk chwili logowania" czyli zmienna $SID będzie zawierać liczbę sekund od Uniksowej epoki (od 1 stycznia 1970 00:00:00 GMT). Może wyglądać np tak:
Teraz sprawa polega na tym aby sprawdzić czy od czasu logowania nie upłyneło więcej czasu niż określiłeś w $SID_time. Np tak:
Dalej - kod sprawdzania musisz wykonywać w każdym miejscu. Możesz do tego użyć include - jeśli nie wiesz co to, napisz. Gdybyś zaś chciał utworzyć zmienną typu "token" (jak w phpMyAdmin) czyli ciąg różnych alfanumerycznych znaków możesz zrobić tak:
Działanie funkcji time jest podobne (szczegóły znajdziesz na PHP.NET), funkcja md5 tworzy, na podstawie algorytmu RSA, taki właśnie token. Pozdr |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 21:29 |