ďťż

Problem Z Wylogowaniem

       

Podstrony


telcocafe

Wiatm mam problem z wylogowaniem. Do sytemu moze sie zalogowac i administrator i pracownik. Poniej umieszczam kod. Chodzi mi o to ze po nacisnienieciu przycisku wyloguj zarowno przy administratorze i pracowniku w ramce iframe nastepuje przejscie do strony tytulowej, jednak nie nastepuje zamkniecie sesji .
Klikajac wtedy w przegladarce przycisk wstecz nadal administrator/pracownik sa zalogowani. Probowalem juz z unset($_SESSION ale nie wiem ajk to dalej zrobic. Jestem poczatkujacym wiec prosze o wyrozumialosc. Z gory dziekuje za pomoc

<html> <head> <title>Logowanie</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <link href="style.css" type="text/css" rel="stylesheet"> </head> <body> <?php session_start(); if($_POST['panel']<>NULL) { $login=$HTTP_POST_VARS['uzytkownik']; $haslo=$HTTP_POST_VARS['hasllo']; $_SESSION['uzytkownik']=$login; $_SESSION['hasllo']=$haslo; } else { $login=$_SESSION['uzytkownik']; $haslo=$_SESSION['hasllo']; } if (($_SESSION['uzytkownik']<>NULL) && ($_SESSION['hasllo']<>NULL)) { $db=mysql_pconnect('localhost','root','krasnal'); if(!$db) { echo '<h3><font class="alert">Błąd: nie udało się połączyć z bazą</h3></font>'; } mysql_select_db('ewidencja1'); $zapytanie = "SELECT count(*) FROM admin where ll='$login' and pp='$haslo' "; $wynik = mysql_query($zapytanie); $ile = mysql_result($wynik,0,0); if ($ile>0) { [b] unset($_SESSION['uzytkownik']); unset($_SESSION['hasllo']); echo '<h3><font class="wynik">Panel administracyjny. ['.$login.'] <a href="index.php" class="tekst_bold" target=_parent>[Wyloguj]</a></h3></font>';[/b] echo' <table border="0" width="214" id="table1"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Administrator</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="admin_edycja.php" class="tekst_bold" target="ramka">- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table2"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Pracownicy</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="Prac_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="prac_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń konto</a></td> </tr> </table> <table border="0" width="214" id="table3"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Sprzęt</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="sprzet_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="sprzet_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table4"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Programy</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="oprog_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="oprog_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table5"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Naprawy</font></b></td> </tr> <tr> <td width="190" height="60">&nbsp; <a href="nap_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="nap_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table6"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Licencje</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="lic_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="lic_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> '; } [b]if (($_SESSION['uzytkownik']<>NULL) && ($_SESSION['hasllo']<>NULL)) { $db=mysql_pconnect('localhost','root','krasnal'); if(!$db) { echo '<h3><font class="alert">Błąd: nie udało się połączyć z bazą</h3></font>'; } mysql_select_db('ewidencja1'); $zapytanie = "SELECT count(*) FROM pracownik where l_='$login' and p_='$haslo' "; $wynik = mysql_query($zapytanie); $ile = mysql_result($wynik,0,0); if ($ile>0) { echo '<h3><font class="wynik">Panel administracyjny pracownika. ['.$login.'] <a href="index.php" class="tekst_bold" target=_parent>[Wyloguj]<br></a></h3></font>'; echo '[/b] <table border="0" width="214" id="table7"> <tr> <td width="208" height="40" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Pracownicy</font></b></td> </tr> <tr> <td width="208" height="65" >&nbsp; <a href="prac_edycja.php" class="tekst_bold" target="ramka">- edytuj/usuń swoje konto</a></td> </tr> </table> <table border="0" width="214" id="table8"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Sprzęt</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="sprzet_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="sprzet_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table9"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Programy</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="oprog_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="oprog_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp - edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table10"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Naprawy</font></b></td> </tr> <tr> <td width="190" height="60">&nbsp; <a href="nap_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="nap_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> <table border="0" width="214" id="table11"> <tr> <td width="190" height="30" background="img/tlo.jpg"> <p align="center"><b><font face="Verdana">Licencje</font></b></td> </tr> <tr> <td width="190" height="60" >&nbsp; <a href="lic_dodaj.html" class="tekst_bold" target="ramka">- dodaj</a><p> <a href="lic_edycja.php" class="tekst_bold" target="ramka">&nbsp&nbsp- edytuj/usuń</a></td> </tr> </table> '; } } else { echo '<h3><font class="alert">Nie masz uprawnień !!!!<br /></h3></font>'; } } else echo '<h3><font class="alert">Nie podałeś wymaganych danych !!!!<br />Spróbuj jeszcze raz.<br /></font></h3>'; ?> </body> </html>



Możesz usunąć wszystkie sesje za pomocą session_destroy().


Możesz usunąć wszystkie sesje za pomocą session_destroy().

dobrze ale w ktorym miejscu to polecenie umiescic
echo '<h3><font class="wynik">Panel administracyjny. ['.$login.'] <a href="index.php" class="tekst_bold" target=_parent>[Wyloguj]</a></h3></font>'; i tutaj session destroy; ??

echo '<h3><font class="wynik">Panel administracyjny. ['.$login.'] <a href="index.php?a=logout" class="tekst_bold" target=_parent>[Wyloguj]</a></h3></font>'; <?php if($_GET['a'] == 'logout') session_destroy(); ?>
Użytkownik Coldpeer edytował ten post 05 luty 2007, 18:47


A ja logowanie tworzę tak:

Pseudokod:
Session_Start zarejestruj sesję $stat Jeśli login i hasło poprawne { $_SESSION['stat']="ok" } Jeśli nie { $_SESSION['stat']="bad" } Jeśli zmienna $_SESSION['stat'] = ok { echo ("zawartość zabezpieczonej strony"); } Jeśli zmienna $_SESSION['stat'] = bad { echo ("złe hasło, spadaj"); }

PS: session start powinno być nad <html> a nie po nagłówku !
Użytkownik Capitan V edytował ten post 05 luty 2007, 19:15

echo '<h3><font class="wynik">Panel administracyjny. ['.$login.'] <a href="index.php?a=logout" class="tekst_bold" target=_parent>[Wyloguj]</a></h3></font>'; <?php if($_GET['a'] == 'logout') session_destroy(); ?>

ok wielkie dzieki juz dziala;)


ok wielkie dzieki juz dziala;)

Witam ponownie pojawil sie problem. Tzn. powyzszy sposob dziala mi pod krasnalem jednak jak wrzucielm pliki na serwer to dalej 'wuloguj' nie dziala tak jak powinno. Czy ma Ktos jescze na to jkais pomysl?

Session_start jest przed <html>?


Session_start jest przed <html>?

Tak

Ja używałem kiedyś takiego sposobu (dla niektórych bez sensu, ale lubie mieć pewność, że coś się usunie ;))if($_GET['a'] == 'logout') { $_SESSION['uzytkownik'] = ''; $_SESSION['hasllo'] = ''; session_unset('uzytkownik'); session_unset('hasllo'); session_unregister('uzytkownik'); session_unregister('hasllo'); }

PS Proponuje byś zrobił tak, jak proponuje Capitan V - dodatkową zmienną sesyjną, która zawiera stan logowania (jeśli zalogowano poprawnie to... a jeśli nie to...). Wtedy tylko ją opróżniasz, usuwasz czy na nowo ustawiasz.
Użytkownik DJ_ProG edytował ten post 06 luty 2007, 09:19
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.