Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Prosty system uprawnień
Boshi
post
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Na początek bym proponował && zastąpić AND... A w drugiej kolejności po wykonaniu zapytania bym pobrał wyniki.
Go to the top of the page
+Quote Post
Boshi
post
Post #3





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


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?



Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Oprócz bindValue musisz użyć bindColumn
Go to the top of the page
+Quote Post
Boshi
post
Post #5





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


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.

Go to the top of the page
+Quote Post
nospor
post
Post #6





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




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

http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html
Go to the top of the page
+Quote Post
Boshi
post
Post #7





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

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


Dzięki Nospor, świetny poradnik (IMG:style_emoticons/default/smile.gif)
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: 19.09.2025 - 19:31