Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Prosty system uprawnień
Forum PHP.pl > Forum > Przedszkole
Boshi
Ponownie ja, tym razem jednak mam pytanie dotyczące stworzenia prostego systemu uprawnień na zasadzie

loguje jako user = upr 1
loguje jako admin = upr 0

W bazie mam tabele user gdzie jest login, haslo, email, uprawnienia
dla admina upr to 0 a dla usera to 1 (na razie bardzo proste)

Za cholerę nie mogę tego wyegzekwować w php...

logowanie:
  1. // wyciagniecie danych login oraz haslo z bazy danych
  2. $logg=$conect->prepare("SELECT * FROM uzytkownicy WHERE login=:login && haslo=:password LIMIT1 ");
  3. $logg->bindValue(':login', $login, PDO::PARAM_STR);
  4. $logg->bindValue(':password', $password, PDO::PARAM_STR);
  5. $logg->execute();
  6.  
  7. // jezeli istnieja takie dane...
  8.  
  9.  
  10. if ($logg->fetch())
  11. {
  12. $_SESSION['login']=$login;
  13. $_SESSION['auth']=TRUE;
  14.  
  15. }


Próbowałem czegoś takiego
  1. if($logg['uprawnienia']==1) $_SESSION['uprawnienia']=1;
ale przy logowaniu dostaję białe tło, podejrzewam, że ma to związek z brakiem fetch, ale nie mam pojęcia jak to inaczej sprawdzić?
b4rt3kk
Na początek bym proponował && zastąpić AND... A w drugiej kolejności po wykonaniu zapytania bym pobrał wyniki.
Boshi
Zastąpie && ->AND

Nie rozumiem tylko drugiej części twojego postu, albo rozumiem i nie do końca. Przecież ta linijka pobiera wyniki
  1. if ($logg->fetch())
- wiersze.

Jakaś wskazówka, może inna funkcja zamiast fetch?



mmmmmmm
Oprócz bindValue musisz użyć bindColumn
Boshi
Czy chodziło o takie coś? Wydaje mi się, że działą.

  1.  
  2. // wyciagniecie danych login oraz haslo z bazy danych
  3. $logg=$conect->prepare("SELECT * FROM uzytkownicy WHERE login=:login AND haslo=:password ");
  4. $logg->bindValue(':login', $login, PDO::PARAM_STR);
  5. $logg->bindValue(':password', $password, PDO::PARAM_STR);
  6.  
  7. $logg->execute();
  8. $logg->bindColumn('uprawnienia', $uprawnienia);
  9. // jezeli istnieja takie dane...
  10.  
  11.  
  12.  
  13. if ($logg->fetch())
  14. {
  15.  
  16.  
  17. $_SESSION['uprawnienia']=$uprawnienia;
  18. $_SESSION['login']=$login;
  19. $_SESSION['auth']=TRUE;
  20.  
  21. }


index.php

  1. if (isset($_SESSION['auth'] ))
  2.  
  3. {
  4. echo 'zalogowany jako '. $_SESSION['login']."<br>";
  5. if ($_SESSION['uprawnienia']==0)
  6. {//administrator
  7. }
  8. else
  9. //user


Jeżeli o to, to od razu spytam, czy da się jakoś bardziej rozbudować ten system, np by user miał dostęp do wybranych materiałów. Slyszałem coś o prawach na łamach kodu binarnego.

nospor
Cytat
Slyszałem coś o prawach na łamach kodu binarnego.

http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html
Boshi
Dzięki Nospor, świetny poradnik smile.gif
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.