Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[PHP] Sesja- sprawdzanie , czy ktoś jest zalogowany

Ostatnio zmodyfikowano 2010-02-23 17:51
Autor Wiadomość
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();
P-14027
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.
P-14028
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ł... ;)
P-14032
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.
P-14033
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();  
P-14034
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.
P-14035
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();
P-14065
« 1 »
  Strona 1 z 1