Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dostęp do podstrony dla wybranych użytkowników
Forum PHP.pl > Forum > Przedszkole
piwlak
Witam! Mam mały problemik- dopiero zaczynam w php i mam takie pytanie. Mam w bazie danych w tabeli użytkownicy pole admin- jak wiadomo wartości 0 lub 1. Chciałbym zrobić tak, aby dostęp do konkretnej podstrony mieli tylko Ci użytkownicy, którzy mają w tabeli user właśnie wartości 1 w polu admin.

Moja podstrona logowania wygląda tak:
  1. <? session_start(); ?>
  2. <html>
  3. <head>
  4. <meta charset = "utf-8">
  5. <style type="text/css">
  6. h1{
  7. text-shadow: -4px 1px 3px black;
  8. font-size: 300%;
  9. font-family: "Gill Sans Ultra Bold";
  10.  
  11. margin-bottom: 50px;
  12. color: purple;
  13. -webkit-text-stroke: 1px black;
  14. }
  15. h2 {
  16. margin-left: auto;
  17. margin-right: auto;
  18. font-family: Times;
  19.  
  20.  
  21.  
  22. }
  23. body {
  24. background-image: url(tlo.jpeg);
  25. }
  26. th {
  27. font-size: 120%;
  28. background-color: #3B286B;
  29. color: #FDF7E7;
  30.  
  31.  
  32. }
  33. tr {
  34. background-color: #C7BEDB;
  35. }
  36. </style>
  37. </head>
  38. <?php
  39.  
  40. // polaczenie z mysql
  41. mysql_connect('127.0.0.1', 'user', 'haslo')
  42. or die('Nieudane połączenie z bazą danych...');
  43.  
  44. // wybor bazy danych
  45. or die('Nie udało się wybrać bazy danych...');
  46.  
  47. // naglowek
  48. echo '<h1>Logowanie</h1>';
  49.  
  50. // sprawdzamy czy user jest juz zalogowany
  51.  
  52. // if($_SESSION['logged'])
  53. if(isset($_SESSION['logged']))
  54. {
  55. if($_SESSION['logged'])
  56. echo 'Już jesteś zalogowany!';
  57. else
  58. {
  59. // tworzymy prosty formularz
  60. echo '<form action="login.php" method="POST">
  61. Nick: <br />
  62. <input type="text" name="nick"><br />
  63. Hasło: <br />
  64. <input type="password" name="pass"><br />
  65. <input type="submit" name="ok" value="Zaloguj">
  66. </form>';
  67. // jesli zostanie nacisniety przycisk "Zaloguj"
  68. if(isset($_POST['ok']))
  69. {
  70. $nick = trim($_POST['nick']);
  71. $pass = trim($_POST['pass']);
  72.  
  73. // sprawdzamy czy wszystkie dane zostaly podane
  74. if(empty($nick) || empty($pass)) echo '<h2>Uzupełnij wszystkie pola!</h2>';
  75.  
  76. // jesli tak...
  77. else
  78. {
  79. // filtrujemy dane
  80.  
  81. // kodujemy haslo
  82. $pass = md5($pass);
  83.  
  84. // sprawdzamy czy istnieje uzytkownik z takim loginem i haslem
  85. $result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
  86.  
  87. // jesli nie istnieje
  88. if(mysql_num_rows($result)==0) echo '<h2>Niestety podałeś niepoprawne dane!</h2>';
  89.  
  90. // jesli tak...
  91. else
  92. {
  93. // dodajemy wynik zapytania do tablicy
  94. $row = mysql_fetch_array($result);
  95.  
  96. // ustawianie sesji ze uzytkownik jest zalogowany
  97. $_SESSION['logged'] = true;
  98.  
  99. // dodawanie do sesji id uzytkownika, login oraz date rejestracji
  100. $_SESSION['id'] = $row['id'];
  101. $_SESSION['nick'] = $row['nick'];
  102. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  103.  
  104. // wyswietlenie komunikatu oznaczajacego poprawne logowanie
  105. echo '<h2>Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php">strone główną</a></h2>';
  106. }
  107. }
  108. }
  109. }
  110. }
  111.  
  112. // rozlaczenie z baza danych
  113.  
  114. // koniec buforowania
  115. ?>
  116. </html>


Z góry dzięki za pomoc
Kshyhoo
Witamy na Forum,
Słyszał Waść o instrukcji warunkowej if?
Stosuj pełne tagi PHP, czyli <?php a nie <?.
piwlak
Czyli w takim wypadku po dodaniu do logowania tej linijki
  1. $_SESSION['admin'] = $row['admin'];

powienienem dodać coś w stylu
  1. <?php
  2. if (isset($_SESSION['admin']))
  3.  
  4. {
  5. if($_SESSION['admin'] !=1) echo 'Nie masz dostępu do tej strony';
  6. else
  7. {
  8. ?>

? Jak tak to w którym miejscu kodu?

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
  5. </script>
  6. <meta charset = "utf-8">
  7. <title>Baza</title>
  8. <style type="text/css">
  9. h1{
  10. text-shadow: -4px 1px 3px black;
  11. font-size: 300%;
  12. font-family: "Gill Sans Ultra Bold";
  13.  
  14. margin-bottom: 50px;
  15. color: purple;
  16. -webkit-text-stroke: 1px black;
  17. }
  18. h2 {
  19. margin-left: auto;
  20. margin-right: auto;
  21. font-family: Times;
  22. color: black;
  23.  
  24.  
  25.  
  26. }
  27. h3 {
  28. margin-left: auto;
  29. margin-right: auto;
  30. font-size: 200%;
  31. font-family: Times;
  32.  
  33.  
  34.  
  35. }
  36. body {
  37. background-image: url(tlo.jpeg);
  38. }
  39. th {
  40. font-size: 120%;
  41. background-color: #3B286B;
  42. color: #FDF7E7;
  43. border-color: black;
  44.  
  45.  
  46.  
  47. }
  48. tr {
  49. background-color: #C7BEDB;
  50.  
  51. }
  52. </style>
  53. </head>
  54. <body>
  55.  
  56. <form method="post" action="baza.php">
  57.  
  58.  
  59. <h1>Dostępne filmy</h1>
  60. <select name="selectPosition">
  61. <option>ID</option>
  62. <option>Nazwa</option>
  63. <option>Gatunek</option>
  64. <option>Premiera</option>
  65. <option>Nazwa</option>
  66. <option>Status</option>
  67. </select>
  68. <input type="submit" name="submit" value="Sortuj">
  69. </form>
  70.  
  71.  
  72. <?php
  73.  
  74.  
  75. if (isset($_POST["submit"])) {
  76.  
  77. switch($_POST["selectPosition"]) {
  78.  
  79. case "ID" :
  80. $select = "ID";
  81. break;
  82. case "Nazwa" :
  83. $select = "Nazwa";
  84. break;
  85. case "Gatunek" :
  86. $select = "Gatunek";
  87. break;
  88. case "Premiera" :
  89. $select = "Premiera";
  90. break;
  91. case "Status" :
  92. $select = "Status";
  93. break;
  94.  
  95. }
  96. $dostepny = "Dostepny";
  97.  
  98. $query = "SELECT * FROM filmy WHERE Status = '$dostepny' ORDER BY $select ASC";
  99. }else
  100. {
  101. $dostepny = "Dostepny";
  102. $query = "SELECT * FROM filmy WHERE Status = '$dostepny'";
  103. }
  104.  
  105.  
  106.  
  107. if (!($database = mysql_connect("127.0.0.1", "user, "haslo")))
  108. die("Nie udało się zalogować.</body></html>");
  109.  
  110. if (!mysql_select_db("baza", $database))
  111. die("Nie można połączyć się z bazą danych.</body></html>");
  112.  
  113. if (!($result = mysql_query($query, $database))) {
  114. print("<p>Niepoprawne dane</p>");
  115. die(mysql_error() . "</body></html>");
  116. }
  117. };
  118. mysql_close($database);
  119. ?>
  120. <br>
  121. <br>
  122.  
  123. <table border=5 >
  124. <tr>
  125. <th>ID</th>
  126. <th>Nazwa</th>
  127. <th>Gatunek</th>
  128. <th>Premiera</th>
  129. <th>Status</th>
  130. <th>Zamówienie</th>
  131.  
  132.  
  133.  
  134.  
  135. <?php
  136.  
  137. while ($row = mysql_fetch_row($result)) {
  138. print("<tr>");
  139. $licznik = 0;
  140. $idFilmu = "";
  141. foreach ($row as $key => $value)
  142. {
  143. $licznik++;
  144. if($licznik == 1)
  145. $idFilmu = $value;
  146. print("<td align='center'>$value</td>");
  147. }
  148. print("<td align='center'><button onclick='zamowFilm($idFilmu)'>Zamów!</button></td>");
  149. print("</tr>");
  150.  
  151. }
  152.  
  153. ?>
  154.  
  155. <script>
  156.  
  157. function zamowFilm(id) {
  158. var idik = id;
  159. $.ajax({
  160. type: 'post',
  161. url: 'zamowienie.php',
  162. data: {
  163. idik: idik
  164. },
  165. success: function(result) {
  166. console.log(result);
  167. alert("Film został zamówiony!")
  168. window.location.href = "baza.php";
  169. }
  170. });
  171. }
  172.  
  173. </script>
  174.  
  175.  
  176. </table>
  177. <br>
  178. <h3><a href="index.php">Powrót do strony głównej</a></h3>
  179. </body>
  180. </html>


Podbijam
Mikele7
Np. możesz zrobić tak, że dodajesz:
  1. if($_SESSION['user_level']==1){
  2. //I wyświetlasz to co ma zobaczyć admin
  3. }else{
  4. //Jeśli nie jest to admin to możesz napisac
  5. echo 'Nie masz uprawnień do oglądania tej strony';
  6. }
  7.  
piwlak
I w którym miejscu tego kodu mam to wkleić? Rozumiem ma to być w tagach <?php. Jednak jeżeli w 55 linijce zaczynam to nie działa- wydaje mi się że z tego powodu iż zamykam kod php i dalej leci zwykły html. W takim wypadku jak powinien wyglądać ten kod?
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.