[PHP] Sesja- sprawdzanie , czy ktoś jest zalogowany
Ostatnio zmodyfikowano 2010-02-23 17:51
malan Temat założony przez niniejszego użytkownika |
[PHP] Sesja- sprawdzanie , czy ktoś jest zalogowany » 2010-02-22 17:06:57 Witam, zacząłem bawić się trochę w PHP i mam pytanie dotyczące sesji. Mam panel logowania na stronie głównej. Po zalogowaniu się użytkownika chcę żeby w jego (tzn. panela) miejsce pojawiło się coś innego (tzn. zamiast formularza, np. Wyloguj itp.). Udało mi się to zrobić samemu jednak rozwiązanie mnie nie zadowala ;p. Kodzik: Po poprawnym zalogowaniu kombinuję tak: session_start(); if( !isset($_SESSION['zalogowany']) ) $_SESSION['zalogowany']=0; if( !isset($_SESSION['xyx']) ) $_SESSION['xyx']=/* ... */
To jeszcze jest w miarę... Wyświetlenie panelu logowania i sprawdzenie, czy ktoś jest zalogowany wygląda tak: session_start(); if( !isset($_SESSION['zalogowany']) ) // <----- ? { echo "<form action=\"ble\" method=\"POST\">"; echo "<input type=text name=ble></br>"; echo "<input type=password name=ble></br>"; echo "<input type=submit value=\"Zaloguj\">"; echo "<br/>Zapomniałem hasła"; echo "<br/><a href=\"?site=rejestration\">Rejestracja</a>"; }else { echo "Twój profil<br/>"; echo "<a href=\"?site=session&action=logout\">Wyloguj</a><br/>"; } Z tego już zadowolony nie jestem ;p. Pytanie: Czy takie rozwiązanie jest dobre? Tzn., czy taki warunek wystarczy? //edit (21:44): Zapomniałem pokazać wylogowania: session_start(); unset($_SESSION['zalogowany']); unset($_SESSION['xyz']); session_destroy();
|
|
Elaine |
» 2010-02-22 17:44:03 Sprawdź, czy wystarczy. Jak się wyświetli nie to, co powinno, to nie wystarcza. Proste, prawda? A tak w ogóle to SOA#1. |
|
malan Temat założony przez niniejszego użytkownika |
» 2010-02-22 21:47:43 Dobra, nie sprecyzowałem pytania ;p. Działać to to ładnie działa, ale chodziło mi o to, czy to jest dobrze pod względem "bezpieczeństwa" (że tak powiem). Ciekawe jak Pan Piotr to rozwiązał... ;) |
|
Elaine |
» 2010-02-22 22:58:47 Raczej bezpieczne - dane sesji i tak są trzymane na serwerze, klient ma tylko ciastko z SIDem. Możnaby sobie co prawda spreparować ciacho, ale szanse na to, że się to uda są raczej niewielkie. Dodatkowych ficzerów szukaj raczej w innych miejscach. |
|
kamillo121 |
» 2010-02-23 11:14:09 a nie korzystasz z session_unset() ? Wtedy nie musiałbyś pisać unset($_SESSION['c']) itd , bo funkcja session_unset() zwalnia wszystkie zmienne z tablicy $_SESSION[] np. session_start(); session_unset(); session_destroy(); |
|
Elaine |
» 2010-02-23 11:19:34 Której użycie w takim kontekście nie jest zalecane, choćby przez sam manual PHP. Jeśli się używa tablicy $_SESSION, to ręczne unsetowanie wszystkiego jest AFAIK jedynym sensownym sposobem. |
|
malan Temat założony przez niniejszego użytkownika |
» 2010-02-23 17:51:17 Dobra, dzięki za odp. :). Poczekam jeszcze - może Pan Piotr coś powie na ten temat ;p.
//Edit (28.02.10, 21:33): Chyba się nie doczekam :). .close(); |
|
« 1 » |