Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Uprawnienia dla użytkowników
Forum PHP.pl > Forum > Przedszkole
Bartek222
Witam
Mam problem , otóż stworzyłem logowanie dla mojej strony PHP, jednak bardzo by mi zależało na tym aby dodać do niej uprawnienia dla 3 użytkowników. Uprawnienia miałyby polegać na dostępie konkretnego użytkownika do zawartości podstron, na przykład aby użytkownik moderator miał dostep do tabela.php , a nie miał dostępu do innej podstrony.W tabeli MySql mam 3 kolumny (użytkownik, hasło, ranga). W kolumnie ranga dla admina dałem cyfre 0 dla moderatora 1 a dla zwykłego usera cyfrę 2.
Niestety nie wiem jak ma wyglądać kod do strony PHP . Wiem ,że trzeba zająć się If-ami ,niestety nie mam na ten temat pojęcia . Z góry dziękuję i bardzo liczę na waszą pomoc. Poniiżej umieszczam mój kod logowania:
  1.  
  2.  
  3.  
  4.  
  5. <html>
  6. <head>
  7. <title>Logowanie</title>
  8. </head>
  9. <body bgcolor="#FAEBD7">
  10.  
  11. <p><center><a href="register.php">Rejestracja</a> | <a href="login.php">Logowanie</a></center></p>
  12. <h4><center>Formularz Logowania</center></h4>
  13. <form action="" method="POST">
  14. <center>Uzytkownik:</center>: <center><input type="text" name="user" class ="validate"><br /></center>
  15. <center>Haslo:</center> <center><input type="password" name="pass" class ="validate" ><br /></center>
  16. <center><input type="submit" value="Zaloguj" name="submit" class ="validate" /></center
  17. </form>
  18. <?php
  19. require ('plik.php');
  20. if(isset($_POST["submit"])){
  21.  
  22. if(!empty($_POST['user']) && !empty($_POST['pass'])) {
  23. $user=$_POST['user'];
  24. $pass=$_POST['pass'];
  25.  
  26.  
  27. $con=mysqli_connect('localhost','root','') or die(mysqli_error());
  28. mysqli_select_db($con,'kluby ranking') or die("nie mozna znalezc bazy danych");
  29.  
  30. $query=mysqli_query($con,"SELECT * FROM login WHERE uzytkownik='".$user."' AND haslo='".$pass."'");
  31. $numrows=mysqli_num_rows($query);
  32. if($numrows!=0)
  33. {
  34. while($row=mysqli_fetch_assoc($query))
  35. {
  36. $dbuzytkownik=$row['uzytkownik'];
  37. $dbhaslo=$row['haslo'];
  38. }
  39.  
  40. if($user == $dbuzytkownik && $pass == $dbhaslo)
  41. {
  42. zapisz_logi('OK');
  43. $_SESSION['sess_user']=$user;
  44.  
  45.  
  46.  
  47. header("Location: UEFA.php");
  48. }
  49. } else {
  50. echo '<span style="color:red">zla nazwa uzytkownika lub haslo</span> <b>';
  51. zapisz_logi('er');
  52. }
  53.  
  54. } else {
  55. echo '<span style="color:red">Wszystkie pola sa wymagane</span> <b>';
  56. }
  57. }
  58. ?>
  59.  
  60. </body>
  61. </html>
goartur
Co musisz zrobic:

Owa osoba loguje sie na strone, przy pomyslnym zalogowaniu zwracasz z bazy range ktora zapisujesz naprzyklad w sesji.
Nastepnie masz rozne podstrony, podstrona administrator.php do ktorej ma tylko dostep administrator musi miec naprzyklad range 1
robisz wiec w administrator.php na samym poczatku:

  1. if($_SESSION['ranga'] != 1){
  2. die('nie jestes administratorem, nie masz uprawnien do tej strony')
  3. }

tak samo z innymi rangami

Dodatkowo polecam przeniesc sie nam mysqlI lub lepiej PDO bo pozniej bedzie ciezej smile.gif
Bartek222
Cytat(goartur @ 20.02.2016, 21:40:03 ) *
Co musisz zrobic:

Owa osoba loguje sie na strone, przy pomyslnym zalogowaniu zwracasz z bazy range ktora zapisujesz naprzyklad w sesji.
Nastepnie masz rozne podstrony, podstrona administrator.php do ktorej ma tylko dostep administrator musi miec naprzyklad range 1
robisz wiec w administrator.php na samym poczatku:

  1. if($_SESSION['ranga'] != 1){
  2. die('nie jestes administratorem, nie masz uprawnien do tej strony')
  3. }

tak samo z innymi rangami

Dodatkowo polecam przeniesc sie nam mysqlI lub lepiej PDO bo pozniej bedzie ciezej smile.gif


Dziękuję za Odpowiedź. Czyli jeśli dobrze zrozumiałem, muszę tak spreparowany kod zastosować na każda z moich podstron, gdzie dany użytkownik nie ma prawa wstępu.?
P.S no i oczywiście w seasion start() w logowaniu każdą ze zmiennych session zadeklarowac?
Przepraszam ,jeśli popełniam teraz totalne fo pas , ale jestem można powiedzieć dyletantem w tej dziedzinie:)
goartur
Dokladnie na kazdej z podstron, w dalszym etapie programowania w php mozna to rozwiazac w calkiem inny sposob.
Czyli kazda strona ma taki kod jak podalem wyzej. I wszedzie uzywasz session_start() na poczatku skryptu.
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.