Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Sprawdzanie uprawnień użytkownika
-PatrycjaN-
post
Post #1





Goście







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?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




zobacz łaskawie w manualu co zwraca mysql_query() a następnie doczytaj jak to obsłużyć.

hint: mysql_fetch_array()
Go to the top of the page
+Quote Post
-PatrycjaN-
post
Post #3





Goście







  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?
Go to the top of the page
+Quote Post
amii
post
Post #4





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


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';


Ten post edytował amii 28.01.2011, 15:21:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 08:46