Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]System logowania
Forum PHP.pl > Forum > Przedszkole
eurosoft
Witam,
mam system logowania użytkowników, działa , wszystko jest ok jednak postanowiłem dodać uprawnienia userom, jeden moze edytować, inny nie może kasować a trzeci może tylko oglądać. Proszę o podpowiedź jak to zrobić najlepiej i najsprawniej.
Oto mój aktualny kod logowania:
  1.  
  2. session_register("zalogowany");
  3.  
  4.  
  5. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0; //blokowanie treści
  6.  
  7. if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  8.  
  9. if ($_POST['wyslane']) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  10.  
  11. include 'config.php'; // połączenie się z bazą danych
  12. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  13.  
  14. $login = $_POST["login"];
  15. $haslo = $_POST["haslo"];
  16.  
  17.  
  18.  
  19. { //blokowanie treści
  20. //echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
  21. $_SESSION["zalogowany"]=1;
  22.  
  23. $_SESSION['nr_obw'] = $_POST['nr_obw'] +0;
  24.  
  25. } //blokowanie treści
  26.  
  27. $wynik=mysql_query("SELECT * FROM $tabela WHERE login='$login' and haslo='$haslo'");
  28.  
  29. if (mysql_num_rows($wynik) == 1 and $_POST['nr_obw']!=0)
  30. {
  31. $informacja = mysql_fetch_array($wynik);
  32. $_SESSION["login"] = $informacja["login"];
  33. header('Location: logowanie.php');
  34. } else {
  35. echo '<center><b><p>Nieprawidłowy Login / Hasło / Obwód</p></b>';
  36. }
  37. mysql_close($polaczenie);
  38. }
  39.  
  40. // tworzenie formularza HTML
  41. echo <<< KONIEC
  42.  
  43. <html>
  44. <body>
  45. <center>
  46. <body onload="document.logowanie.login.focus()">
  47. <form name="logowanie" form action="logowanie.php" method="post">
  48.   <input type="hidden" name="wyslane" value="TRUE" />
  49. <p>Login: <input type="text" name="login" value="" title="Podaj swój LOGIN"/></p>
  50.   <p>Hasło: <input type="password" name="haslo" title="Podaj swoje HASŁO"/></p>
  51. <p>Wybierz Nr Obwodu:<br>
  52. <input type="radio" name="nr_obw" value="361" title="Wybierz właściwy obwód"/>361&nbsp;&nbsp;
  53. <input type="radio" name="nr_obw" value="363" title="Wybierz właściwy obwód"/>363&nbsp;&nbsp;
  54. <p><input type="submit" value="Zaloguj" /></p>
  55. </form>
  56. </center>
  57. </body>
  58. </html>
  59.  
  60. KONIEC;
  61.  
  62. }
  63. else
  64. {
  65. header('Location: ewidencja.php');
  66. // zalogowany użytkownik zostaje przekierowany na stronę główną
  67. }
  68.  
  69. if ($_GET["wyloguj"] == "tak") {
  70. //niszczenie sesji użytkownika
  71. header('Location: index.html'); // przekierwanie na stronę główną
  72. }
  73.  
Reptile ReX
Dodaj nowe pole do tabeli użytkowników np: Status

I potem sprawdzaj czy dany użytkownik ma Status np (0-1-2) i w zależności od tego wyświetlaj odpowiednią treść ;-)

A przy okazji proponuję zapoznać się z tematem Ataków SQL, bo w twoim przypadku nie masz filtrowania zmiennych, wysyłanych do zapytania SQL (login, hasło)
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.