ďťż

[php] Autoryzacja użytkowników problem z wyloguj a potem zaloguj.

       

Podstrony


telcocafe

Siemka na początku skrypt a później zrzut
<? include("config.php"); function login_form() { echo '<form name="logowanie" id="logowanie" method="post" action="login.php"> <table width="250" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100" nowrap="nowrap">Login:</td> <td width="150" colspan="3" nowrap="nowrap"><input name="login" type="text" class="login" id="login" size="20" /></td> </tr> <tr> <td height="1" colspan="4" nowrap="nowrap"></td> </tr> <tr> <td width="100" nowrap="nowrap">Haslo:</td> <td width="150" colspan="3" nowrap="nowrap"><input name="haslo" class="haslo" type="password" id="haslo" size="20" /></td> </tr> <tr> <td height="1" colspan="4" nowrap="nowrap"></td> </tr> <tr align="right"> <td colspan="4"><input type="hidden" name="cmd" value="sprawdz"><input class="loguj" type="submit" value="Zaloguj" /></td> </tr> <tr> <td height="1" colspan="4" nowrap="nowrap"></td> </tr> <tr> <td colspan="4"><ul> <li><a href="login.php?reg">Nie masz konta? zalóz</a>&nbsp;<b class="b">&raquo;</b></li> </ul></td> </tr> </table> </form>'; } if(empty($_SESSION['status_uzyt'])) { $_SESSION['status_uzyt'] = "0"; } // Pobieramy zmienna, która decyduje o tym, jaka cmd jest wyswietlana if($HTTP_POST_VARS["cmd"] == "") { $cmd = $HTTP_GET_VARS["cmd"]; } else { $cmd = $HTTP_POST_VARS["cmd"]; } // Sprawdzamy zawartosc zmiennej $cmd i wywolujemy odpowiednia akcje skryptu if($cmd == "") { // Zmiennna nie zostala ustawiona czyli skrypt zostal wywolany bez niej. // Wyswietlamy wiec strone glówna z mozliwoscia przejscia do strony ukrytej if($_SESSION['status_uzyt'] == 0) { login_form(); } } elseif($cmd == "zaloguj") { pokaz_okno_log(); } elseif($cmd == "sprawdz") { $query = mysql_query("SELECT * FROM uzytkownicy"); while($row = mysql_fetch_array($query) ) { $Uzytkownik[] = $row['login'].'|'.$row['haslo'].'|'.$row[ 'access']; $user = '<font color="'.$row['kolor'].'">'.$row['przedrostek' ].'<b>'.$row['login'].'</b></font>'; for($i=0;$i<count($Uzytkownik);$i++) { $UzytkownikDane[$i] = explode("|", $Uzytkownik[$i]); } // W tym miejscu srpawdzamy czy uzytkownik podal odpowiednie dane w formularzu for($i=0;$i<count($Uzytkownik);$i++) { if($HTTP_POST_VARS["login"] == $UzytkownikDane[$i][0] && md5($HTTP_POST_VARS["haslo"]) == $UzytkownikDane[$i][1]) { $_SESSION['status_uzyt'] = $UzytkownikDane[$i][2]; if($_SESSION['status_uzyt'] == 1 || $_SESSION['status_uzyt'] == 2 || $_SESSION['status_uzyt'] == 3) { echo 'Witaj '.$user.' - ( <a href="login.php?cmd=edytuj">Profil</a>&nbsp;'; if($_SESSION['status_uzyt'] == 2 || $_SESSION['status_uzyt'] == 3) { echo '<a href="mod.php">Mod CP</a>&nbsp;'; } if($_SESSION['status_uzyt'] == 3) echo '<a href="admin.php">Admin CP</a>&nbsp;'; } echo '<a href="login.php?cmd=wyloguj">wyloguj</a>&nbsp;) '; } } } if($_SESSION['status_uzyt'] == 0) { // Jezeli uzytkownik podal nieprawidlowe dane, wówczas ustalamy wartosc zmiennej // na 0, wyswietlamy odpowiedni komunikat i pokazujemy okno do logowania $_SESSION['status_uzyt'] = 0; echo '<p>Logowanie nieudane. Spróbuj jeszcze raz.</p>'; login_form(); } } elseif($cmd == "wyloguj") { // W tym miejscu wylogowujemy uzytkownika. Wystarczy zmienna "$status_uzyt" ustawic // na wartosc 0 i pokazac odpowiedni komunikat $_SESSION['status_uzyt'] = 0; echo '<p>Zostales wylogowany. Aby przejsc na strone glówna <a href="login.php">kliknij w tym miejscu</a>.</p>'; } ?>

loguje sie najpierw jako zwykły user jest spoko cacy (jego uprawnienia itp) i teraz wylogowywuje sie się (login.php?cmd=wyloguj) pokazuje mi sie formularz logowania teraz loguj sie jako moderator. PO zalogowaniu pokazuje 2-och usersów zalogowanych moderator i zwykły tyle ze sa obaj naraz z jednego kompa a ja chce tylko jeden naraz no i najgorsze jest to ze user dziedziczy po moderatorze jego prawa nastepnie sie wyloguje i zaloguje jako zwykly user i znowu widze 2 userów zalogowanych moda i zwykłego i tym razem moderator dziedziczy tylko prawa zwykłego usersa i tak samo jest z administrator na zrzucie załączonym poniżej możecie zobaczyć w tym ,że administrator jest zalogowany najpóźniej czyli wszyscy dziedziczą jego prawa
http://img372.images...led1copy0gc.jpg
jak zrobić zeby tylko jeden był naraz zalogowany ?
Użytkownik dEz17 edytował ten post 12 październik 2005, 14:44


użyj zniszczenia sesji

tutaj masz linkę http://pl2.php.net/m...ion-destroy.php

PS: wyedytuj swój post i kod wrzuć w codebox a nie w code

nic z sesjami byłem głupi i skopałem skrypt już sobie poprawiłem :P

EOT
Użytkownik dEz17 edytował ten post 12 październik 2005, 15:16
wrzuć mi te skrypty na maila j-mail@o2.pl

oblookam i ci odeślę poprawionme. aha i załącz jeszcze schemat bazy danych



już mam jest dobrze byles szybszy niz zdazylem edytować:P Poprostu zrobiłęm tak zrycie zeby wyswietlał wszystkie pokolei wyniki z bazy danych i tak na realu był tylko jeden zalogowany a ze bylo 4 usersow no to pokazywalo wszystkie loginy a prawa itp bralo z pierwszego
jeszcze raz
EOT

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.