Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Sprawdzanie uprawnień użytkownika
Forum PHP.pl > Forum > Przedszkole
PatrycjaN
Szukałam ale nigdzie nie mogę znaleźć odpowiedzi na moje pytanie.

Mam w bazie danych tabelę users, a w niej: id, login, pass, uprawnienia.

Chcę, aby po zalogowaniu na stronie log.php (wszystko odbywa się zgodnie z oczekiwaniami) skrypt w pliku konto.php (gdzie po poprawnej weryfikacji użytkownik jest przekierowywany) sprawdzał jakie uprawnienia posiada zalogowany użytkownik? 0 = zwykły user; 1 = admin.

  1. <?php
  2.  
  3. $c = mysql_connect('localhost', 'root', '')
  4. or die('Brak połączenia z serwerem MySQL');
  5. $db = mysql_select_db('test', $c)
  6. or die('Nie mogę połączyć się z bazą danych');
  7.  
  8. $l = $_SESSION['login'];
  9. $z = mysql_query("select user_login=\"$l\" from users where uprawnienia")
  10. or die('Błąd zapytania.');
  11.  
  12.  
  13. if($z == 0)
  14. {
  15. echo 'admin';
  16. }
  17.  
  18. else { echo 'user '; }
  19. ?>
  20. <html>
  21. <head>
  22. <meta http-equiv="content-type" content="text/html"; charset="utf-8">
  23. </head>
  24. <body>
  25. </body>
  26. </html>


Coś w tym kodzie jest źle, bo ciągle mam 'user', bez względu na kogo się zaloguje?
nospor
zobacz łaskawie w manualu co zwraca mysql_query() a następnie doczytaj jak to obsłużyć.

hint: mysql_fetch_array()
PatrycjaN
  1. <?php
  2.  
  3. $c = mysql_connect('localhost', 'root', '')
  4. or die('Brak połączenia z serwerem MySQL');
  5. $db = mysql_select_db('test', $c)
  6. or die('Nie mogę połączyć się z bazą danych');
  7.  
  8. $l = $_SESSION['login'];
  9. $z = mysql_query("select uprawnienia from users where user_login=\"$l\"")
  10. or die('Błąd zapytania.');
  11.  
  12.  
  13. $row = mysql_fetch_array($z);
  14.  
  15. if($row == 1)
  16. {
  17. echo "Witaj w panelu administracyjnym. Twoje uprawnienia to: ".$row['uprawnienia']." </ br>";
  18. echo '<a href="wyloguj.php">wyloguj</a>';
  19. }
  20.  
  21. else { echo "Nie masz uprawnień do przeglądania tej strony. Twoje uprawnienia to: ".$row['uprawnienia']." <br>";
  22. echo '<a href="wyloguj.php">wyloguj</a>';
  23. }
  24. ?>
  25. <html>
  26. <head>
  27. <meta http-equiv="content-type" content="text/html"; charset="utf-8">
  28. </head>
  29. <body>
  30. </body>
  31. </html>

OK, zrobiłam. Ale teraz pojawia się kolejny problem z tym kodem. Otóż komunikat (niezależnie czy zaloguję się jako użytkownik z uprawnieniami 1 czy 0) jaki dostaję w rezultacie to ""Nie masz uprawnień do przeglądania tej strony. Twoje uprawnienia to: //poprawny numer uprawnień//" Jakieś wskazówki?
amii
mysql_fetch_array zwraca jako wynik tablicę. To powinnaś obsłużyć w ten sposób:

  1. while ($row = mysql_fetch_array($z)) {
  2.  
  3. $privilige = $row['privilige']; //gdzie privilige to nazw kolumny z uprawnieniami
  4. }
  5.  
  6.  
  7. if($privilige) echo 'jestem adminem';
  8. else echo 'jestem userem';
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.