Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Uprawnienia dla użytkowników
Bartek222
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.02.2016

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


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>


Ten post edytował Bartek222 20.02.2016, 20:13:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
goartur
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

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


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował goartur 20.02.2016, 21:41:33
Go to the top of the page
+Quote Post
Bartek222
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.02.2016

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


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 (IMG:style_emoticons/default/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:)
Go to the top of the page
+Quote Post
goartur
post
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

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


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.
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: 23.08.2025 - 03:52