![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę stworzyć system logowania na moją stronkę. Mam jednak parę wątpliwości, które chciałbym, żebyście pomogli mi rozwiać. Chodzi o zasady używania sesji do logowania. Formularz logowania to nie problem. Chodzi mi jednak o potwierdzenie / zaprzeczenie mojemu sposobowi rozumowania. Myślę, żeby napisać funcję powiedzmy sprawdz(), ktora będzie sprawdzała zmienna sesji powiedzmy autoryzacja i zwracała TRUE jeśli $_SESSION[autoryzacja]=1 - czyli użytkownik zalogowany (haslo i nazwa zgodne z tymi w bazie). Dalej, co za tym idzie można by używać tej funkcji w dowolnym miejscu sprawdzając czy użytkownik jest zalogowany. Mam rację? Jak jednak zrobić to wszystko. Powiedzmy mam plik login.php, do którego przekazywane sa dane z formularza logowania. Jeśli haslo i nazwa uzytkownika zgadzaja sie z tymi w bazie to co... wtedy zacząć sesje za pomocą session_start? Dalej... czy sesje mają jakiś swój "okres ważności"? Jeśli tak to pewnie w nagłówku każdej strony, jeśli użytkownik jest zalogowany musiałbym "odświeżyć sesję" żeby nie wygasła, tak? Przy wylogowywaniu oczywiście session_destroy. Czy coś pominąłem? Dobrze rozumuję? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tzn nawet jeśli nies niezalogowany to rozpoczynać sesję? A po zalogowaniu zmieniać tylko zmienna powiedzmy $_SESSION[autoryzacja] ?
Ok, dalej... Czyli tak, w nagłowku daję session_start. teraz wiadomo, jeśli jkest zalogowany to powedzmy wartość $_SESSION[auth]=1. Jak jednak ustawić czas ważności sesji, zeby trwała powiedzmy 60 minut. Po każdym przeładowaniu strony sesja jest odświeżana. Ale powiedzmy, że ktoś się zaloguje i przez 60 minut będzie bezczynny. Jak zrobić, żeby jego sesja wygasła i po odświeżeniu strony był wylogowany? Dobrze, juz chyba wiem. Trzeba troche pobawić się ini_set. Im człowiek więcej wie tym więcej ma pytań. Na webhelp.pl znalazłem tutorial do umieszczania sesji w bazie MySQL. Czy warto się tym zając? Jaką przewagę ma umieszczanie sesji w bazie nad "zwykłym"? Ten post edytował MalyKazio 29.09.2006, 09:05:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 0 Dołączył: 13.04.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Tzn nawet jeśli nies niezalogowany to rozpoczynać sesję? A po czym chcesz sprawdzać, czy jesteś zalogowany? Właśnie po sesji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Najpierw uruchamiasz sesję -> a dopiero potem sprawdzasz, czy jesteś zalogowany (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Dobrze, juz chyba wiem. Trzeba troche pobawić się ini_set. ini_set służy do ustawień jądra php - do sesji nie jest mu nic potrzebne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jak zrobić, żeby jego sesja wygasła i po odświeżeniu strony był wylogowany? W sesji przechowujesz czas ostatniej aktywności użytkownika (np. $_SESSION['last_activity'] = time(); // chodzi o wpisywanie aktualnego czasu na każdej podstronie). Na każdej stronie, zanim przypiszesz ten nowy czas, porównujesz go także z aktualnym, więc:Proste, nie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Im człowiek więcej wie tym więcej ma pytań. Na webhelp.pl znalazłem tutorial do umieszczania sesji w bazie MySQL. Czy warto się tym zając? Jaką przewagę ma umieszczanie sesji w bazie nad "zwykłym"? Generalnie pisanie własnych sesji jest o tyle lepsze, że masz pełną kontrolę nad wszystkim, co się z sesją dzieje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A także, i to jest niezaprzeczalny bonus, masz możliwość sprawdzania, jaki użytkownik jest aktualnie zalogowany, poprzez sprawdzanie czy sesja danego użytkownika istnieje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wady, natomiast to: musisz przewidzieć, jakie zmienne sesyjne będą ci potrzebne (tzn. dodawanie informacji "w locie" [on-the-fly] jest znacznie trudniejsze niż w klasycznych sesjach) i po drugie, właśnie ta metoda jest trudniejsza od standardowych sesji... mimo wszystko się nie zrażaj - ja swoją przygodę z sesjami zacząłem od własnej sesji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jeżeli masz jakieś pytania jeszcze, śmiało pytaj - postaramy się ci odpowiedzieć, jak będziemy umieli najlepiej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 09:09 |