Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Logowanie na uprawnienia
Forum PHP.pl > Forum > Przedszkole
szymon202
Witajcie. Jestem noob w php i mam skrypt na logowanie i rejestracje. Użytkownik może wyświetlać coś innego i gość. Teraz rozchodzi mi się o administratora aby wyswietlał to co użytkownik i dodatkowe kody wpisane przeze mnie.
mlawnik
Dajesz w tabeli mySQL dodatkowe pole admin z wartością 0-1 i jak jest 1 to wyświetlasz dodatkowe kody.
szymon202
A jaki jest kod na to ze jak ktoś ma 1 to ma inne pola?
mlawnik
Ten twój system logowania jest oparty o bazę danych, tak?
szymon202
Tak. Baza danych.
Turson
W tabeli uzytkowników dodaj pole admin i wartość domyślnie 0. Admin niech ma 1.
Potem sprawdzasz zapytaniem do bazy: jeśli użytkownik ma admin=1 pokazujesz zawartość dla niego
szymon202
A co mi napisał Pan wcześniej? To wiem tylko jaki kod, że jak user ma wartość 1 to wyświetla mu sie.
mlawnik
SELECT Admin FROM users WHERE userId = :userId

if $queryResult == 1{
DISPLAY();
}
szymon202
Dalej nie rozumiem ;c

SELECT Admin FROM users WHERE userId = :userId
Te zapytanie mam wykonac? Co oznacza te UserId?

if $queryResult == 1{
DISPLAY();
}

I po display mam dac echo aby wyswietlic tekst? Proszę o wyjaśnienie.


Turson
Ehhh to podstawy podstaw. Poczytaj manual.

UserId to po prostu id usera wyciągnięte z bazy... Nie wiem jak prościej.

Kolega napisał Ci ogólnikami, a sam masz to złożyć w całość.

Display(); - to to co się wyświetli jeśli użytkownik jest adminem. Zamiast tego możesz dać echo czy co tylko chcesz
szymon202
A więc tak UserID to kolumna? Bo jeżeli tak to ja mam id

  1. <?php
  2. $queryResult = mysql_query("SELECT Admin FROM users WHERE userId = :userId")
  3. or die("Zapytanie niepoprawne");
  4.  
  5. if $queryResult == 1 {
  6. echo 'Jesteś adminem';
  7. } ?>


Czy to ma tak wyglądać?
mlawnik
Powinieneś tam wstawić zamiast :userid id użytkownika z aktualnej sesji/ bazy danych.
Poza tym, co cie powstrzymuje przed przetestowaniem kodu?
webmaniak
Cytat(szymon202 @ 15.08.2013, 09:48:12 ) *
A więc tak UserID to kolumna? Bo jeżeli tak to ja mam id

  1. <?php
  2. $queryResult = mysql_query("SELECT Admin FROM users WHERE id = :userId")
  3. or die("Zapytanie niepoprawne");
  4.  
  5. if $queryResult == 1 {
  6. echo 'Jesteś adminem';
  7. } ?>


Czy to ma tak wyglądać?

Warunek if powinien być w nawiasie. Poza tym, tak jak wspomniał mlawik w WHERE przyrównujesz swoje pole, w Twoim przypadku jest to id, do jakiejś zmiennej, więc:
  1. <?php
  2. $queryResult = mysql_query("SELECT `Admin` FROM `users` WHERE `id` = {$id}")
  3. or die("Zapytanie niepoprawne");
  4.  
  5. if ($queryResult == 1) {
  6. echo 'Jesteś adminem';
  7. } ?>

Prawdopodobnie tak to będzie wyglądać, ale nikt tego nie sprawdzi za Ciebie smile.gif
mlawnik
Tak, przetestuj i wróć do nas z błędami.

@OFFTOP
Wszyscy tak samo przekręcają mój nick, że zastanawiam się czy go nie zmienić tongue.gif
szymon202
Błędów nie mam lecz mam niepoprawne zapytanie.

Kod:
  1. <?php
  2. require_once ('szkielet.php');
  3. ?>
  4.  
  5. <?php
  6. $queryResult = mysql_query("SELECT `Admin` FROM `users` WHERE `id` = {$id}")
  7. or die("Zapytanie niepoprawne");
  8.  
  9. if ($queryResult == 1) {
  10. echo 'Jesteś adminem';
  11. } ?>
  12.  
  13. <?php
  14. require_once ('stopka.php');
  15. ?>
Turson
  1. $queryResult = mysql_query("SELECT `Admin` FROM `users` WHERE `id` = {$id}")

Nie widzę, żebyś miał gdzieś zdefiniowane co oznacza $id
szymon202
Jak to mam zdefiniować i co ma tam być ?
Turson
Id użytkownika, który jest aktualnie zalogowany, jeśli działa to tak: masz stronę normalną z logowaniem. Oprócz tego sekcję admina tylko dla tych gdzie admin=1.
Musisz więc pobrać id zalogowanego użytkownika (najlepiej trzymać w sesji od razu po zalogowaniu).
Jeśli Twoja strona działa inaczej niż napisałem, to popraw mnie.
Dla panelu admina masz osobne logowanie czy to samo z innej podstrony?
szymon202
http://pileczka.com.pl/

A ten kod jest na http://pileczka.com.pl/xDDD.php

Login: 1
Hasło: 1
Turson
Czyli wszystko działa na jednym zalogowaniu.
Więc tłumaczę:
-kiedy użytkownik się zaloguje, w sesji zapisz jego id
-wtedy w zapytaniu do bazy o to czy ma admina odnosisz się do jego id
  1. $queryResult = mysql_query("SELECT admin FROM users WHERE id='$_SESSION[id]'")

szymon202
  1. <?php
  2. require_once ('szkielet.php');
  3. ?>
  4.  
  5. <?php
  6. $queryResult = mysql_query("SELECT Admin FROM users WHERE id='$_SESSION[id]'")
  7. or die("Zapytanie niepoprawne");
  8.  
  9. if ($queryResult == 1) {
  10. echo 'Jesteś adminem';
  11. } ?>
  12.  
  13. <?php
  14. require_once ('stopka.php');
  15. ?>


I nawet jak mam admina nie wyświetla się Jesteś adminem.
Turson
Dodałeś $_SESSION["id"] od razu po zalogowaniu się tak jak mówiłem?
szymon202
Do pliku login.php ?
Turson
Tak.

Jak użytkownik się pomyślnie zaloguje, pobierz jego id z bazy i zapisz w sesji. To się bardzo przydaje.
szymon202
Ale jak mam to zrobić?

login.php
  1. <?php
  2. ?>
  3. <center>
  4. <?php
  5. require_once ('szkielet.php');
  6. require 'header.php'; // Dołącz początkowy kod HTML
  7. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  8.  
  9. /**
  10.  * SKRYPT LOGOWANIA
  11.  */
  12. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  13.  
  14. // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
  15. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  16. $pass = mysql_real_escape_string($_POST['pass']);
  17.  
  18. if ($_POST['send'] == 1) {
  19. // Sprawdź, czy wszystkie pola zostały uzupełnione
  20. if (!$login or empty($login)) {
  21. die ('<p class="error">Wypełnij pole z loginem!</p>');
  22. }
  23.  
  24. if (!$pass or empty($pass)) {
  25. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  26. }
  27.  
  28. // Posól i zahashuj hasło
  29.  
  30. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  31. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  32.  
  33. if ($userExists[0] == 0) {
  34. // Użytkownik nie istnieje w bazie
  35. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  36. }
  37.  
  38. else {
  39. // Użytkownik istnieje
  40. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  41.  
  42. // Przypisz pobrane dane do sesji
  43. $_SESSION['login'] = $login;
  44. $_SESSION['pass'] = $pass;
  45.  
  46. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  47. }
  48. }
  49.  
  50. else {
  51. /**
  52.   * FORMULARZ LOGOWANIA
  53.   */
  54. ?>
  55.  
  56. <form method="post" action="">
  57. <label for="login">Login:</label>
  58. <input type="text" name="login" maxlength="32" id="login" />
  59.  
  60. <label for="pass">Hasło:</label>
  61. <input type="password" name="pass" maxlength="32" id="pass" /><br />
  62.  
  63. <input type="hidden" name="send" value="1" />
  64. <input type="submit" value="Zaloguj" />
  65. </form>
  66.  
  67. <?php
  68. }
  69.  
  70. require 'footer.php'; // Dołącz końcowy kod HTML
  71. ?>
  72. </center>
Turson
Po co trzymasz w sesji hasło użytkownika? ohmy.gif Loginu też nie musisz, ale jak chcesz to uwzględniłem to:

  1. <?php
  2. ?>
  3. <center>
  4. <?php
  5. require_once ('szkielet.php');
  6. require 'header.php'; // Dołącz początkowy kod HTML
  7. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  8.  
  9. /**
  10.   * SKRYPT LOGOWANIA
  11.   */
  12. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  13.  
  14. // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
  15. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  16. $pass = mysql_real_escape_string($_POST['pass']);
  17.  
  18. if ($_POST['send'] == 1) {
  19. // Sprawdź, czy wszystkie pola zostały uzupełnione
  20. if (!$login or empty($login)) {
  21. die ('<p class="error">Wypełnij pole z loginem!</p>');
  22. }
  23.  
  24. if (!$pass or empty($pass)) {
  25. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  26. }
  27.  
  28. // Posól i zahashuj hasło
  29.  
  30. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  31. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  32.  
  33. if ($userExists[0] == 0) {
  34. // Użytkownik nie istnieje w bazie
  35. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  36. }
  37.  
  38. else {
  39. // Użytkownik istnieje
  40. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  41.  
  42. // Przypisz pobrane dane do sesji
  43. $zapytanie = mysql_query("SELECT id FROM users WHERE login='$login'") or die(mysql_error());
  44. if ($zapytanie)
  45. {
  46. $wynik = mysql_fetch_array($zapytanie);
  47. $_SESSION['id'] = $wynik['id'];
  48. $_SESSION['login'] = $login;
  49. $_SESSION['zalogowany'] = 1;
  50. }
  51.  
  52. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  53. }
  54. }
  55.  
  56. else {
  57. /**
  58.   * FORMULARZ LOGOWANIA
  59.   */
  60. ?>
  61.  
  62. <form method="post" action="">
  63. <label for="login">Login:</label>
  64. <input type="text" name="login" maxlength="32" id="login" />
  65.  
  66. <label for="pass">Hasło:</label>
  67. <input type="password" name="pass" maxlength="32" id="pass" /><br />
  68.  
  69. <input type="hidden" name="send" value="1" />
  70. <input type="submit" value="Zaloguj" />
  71. </form>
  72.  
  73. <?php
  74. }
  75.  
  76. require 'footer.php'; // Dołącz końcowy kod HTML
  77. ?>
  78. </center>


Nie wiem jak sprawdzasz czy użytkownik jest zalogowany, ale radziłbym zrobić to tak, jak napisałem: $_SESSION['zalogowany'] = 1;
Sprawdzasz $_SESSION["zalogowany"] i jeśli ==1 to użytkownik jest zalogowany. Podczas wylogowania ustawiasz wartość zmiennej na 0.
Jeśli na sprawdzanie czy użytkownik jest zalogowany masz inny sposób, to wywal to.

Żeby całość zadziałała musisz się wylogować i zalogować jeszcze raz.
szymon202
Ten kod co podałes wyświetla to samo co dla nie zalogowanych dla zalogowanych.
Turson
Gdzie wyświetla? Ciężko pomóc gdy podajesz tak mało informacji.
Podałem Ci już multum rozwiązań, więc spróbuj to złożyć w jedną całość. Podaję tylko przykłady rozwiązań, więc copy-paste nie zawsze zadziała.

Nie wiem:
-jak sparawdzasz czy użytkownik jest zalogowany
-jak sprawdzasz czy jest adminem
szymon202
Szkielet.php Może tam coś do zmienienia jest
  1. <?php
  2. require 'header.php'; // Dołącz początkowy kod HTML
  3. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  4. require_once 'user.class.php';
  5.  
  6. if (user::isLogged()) {
  7. // Widok dla użytkownika zalogowanego
  8.  
  9. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  10. $user = user::getData('', '');
  11. ?>
  12. <!DOCTYPE HTML>
  13. <html xmlns:fb="http://ogp.me/ns/fb#">
  14. <head>
  15. <title>PILECZKA.COM.PL - Twoje centrum piłki !</title>
  16. <script src="http://portalradiowy.com.pl/include/fb/fb.php?adres=https://www.facebook.com/pilkaPileczkowa" type="text/javascript"></script>
  17. <link rel="Stylesheet" type="text/css" href="news.css" />
  18. <script type="text/javascript" charset="iso-8859-2" src="news.js"></script>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  20. <meta name="author" content="Tomas Bagdanavicius, <a href="http://www.lwis.net/free-css-drop-down-menu/&quot;" target="_blank">http://www.lwis.net/free-css-drop-down-menu/"</a> />
  21. <meta name="keywords" content=" css, dropdowns, dropdown menu, drop-down, menu, navigation, nav, horizontal, vertical left-to-right, vertical right-to-left, horizontal linear, horizontal upwards, cross browser, internet explorer, ie, firefox, safari, opera, browser, lwis" />
  22. <meta name="description" content="Clean, standards-friendly, modular framework for dropdown menus" />
  23. <link rel="shortcut icon" type="image/x-icon" href="css/dropdown/themes/nvidia.com/images/favicon.ico" />
  24. <link href="css/helper.css" media="screen" rel="stylesheet" type="text/css" />
  25.  
  26. <!-- Beginning of compulsory code below -->
  27.  
  28. <link href="css/dropdown/dropdown.css" media="screen" rel="stylesheet" type="text/css" />
  29. <link href="css/dropdown/themes/nvidia.com/default.advanced.css" media="screen" rel="stylesheet" type="text/css" />
  30.  
  31. <link href="css/horizontal-centering.css" media="all" rel="stylesheet" type="text/css" />
  32.  
  33. <!-- / END -->
  34.  
  35. </head>
  36. <body class="nvidia-com">
  37. <div id="fb-root"></div>
  38. <script>(function(d, s, id) {
  39. var js, fjs = d.getElementsByTagName(s)[0];
  40. if (d.getElementById(id)) return;
  41. js = d.createElement(s); js.id = id;
  42. js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
  43. fjs.parentNode.insertBefore(js, fjs);
  44. }(document, 'script', 'facebook-jssdk'));</script>
  45. <script type="text/javascript" src="js/whcookies.js"></script>
  46. <div class="wrapper">
  47.  
  48. <div class="container">
  49. <table><tr><td>
  50. <img src="logo.png" alt="Pileczka.com.PL"> </td> <td> &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp </td> <td>
  51.  
  52. <?php echo'<p><a href="./" class="main-site">Witaj '.$user['login'].'!</a><br>'; ?>
  53. <?php echo'<a href="./" class="main-site">Posiadasz '.$user['pileczka'].' Pileczek!</a></p>'; ?>
  54. </div>
  55.  
  56. </td>
  57. </tr>
  58. </table>
  59. <h1></h1>
  60.  
  61. <?php
  62. require_once ('menu-1.php');
  63.  
  64. ?>
  65. <table align="right" style="vertical-align: top"><tr><td><div class="fb-like-box" data-href="https://www.facebook.com/pileczka" data-width="292" data-show-faces="true" data-header="true" data-stream="true" data-show-border="true"></div>&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp</td></tr></table>
  66.  
  67. </div>
  68.  
  69.  
  70. <script type="text/javascript">
  71. // <![CDATA[
  72. var news = new News();
  73.  
  74. /////
  75. // Dodawanie newsów w postaci:
  76. // news.dodaj(dzień,miesiąc,rok,
  77. // 'Tytuł','Treść newsa...',
  78. // 'adres','ramka',
  79. // 'autor','e-mail',
  80. // 'obrazek',szerokość,wysokość);
  81. /////
  82.  
  83. //////////
  84. // Dodawanie newsów:
  85. news.dodaj(dzień,miesiąc,rok, 'Tytuł', 'Treść newsa...');
  86. news.dodaj(dzień,miesiąc,rok, 'Tytuł', 'Treść newsa...');
  87. news.dodaj(dzień,miesiąc,rok, 'Tytuł', 'Treść newsa...');
  88. //////////
  89.  
  90. news.wyswietl();
  91. // ]]>
  92. </script>
  93. </body>
  94. </html>
  95.  
  96. <?php
  97.  
  98.  
  99.  
  100.  
  101.  
  102. }
  103.  
  104. else { ?>
  105.  
  106. <HTML>
  107. <html xmlns:fb="http://ogp.me/ns/fb#">
  108. <head>
  109. <title>PILECZKA.COM.PL - Twoje centrum piłki !</title>
  110. <script src="http://portalradiowy.com.pl/include/fb/fb.php?adres=https://www.facebook.com/pilkaPileczkowa" type="text/javascript"></script>
  111. <link rel="Stylesheet" type="text/css" href="news.css" />
  112. <script type="text/javascript" charset="iso-8859-2" src="news.js"></script>
  113. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  114. <meta name="author" content="Tomas Bagdanavicius, <a href="http://www.lwis.net/free-css-drop-down-menu/&quot;" target="_blank">http://www.lwis.net/free-css-drop-down-menu/"</a> />
  115. <meta name="keywords" content=" css, dropdowns, dropdown menu, drop-down, menu, navigation, nav, horizontal, vertical left-to-right, vertical right-to-left, horizontal linear, horizontal upwards, cross browser, internet explorer, ie, firefox, safari, opera, browser, lwis" />
  116. <meta name="description" content="Clean, standards-friendly, modular framework for dropdown menus" />
  117. <link rel="shortcut icon" type="image/x-icon" href="css/dropdown/themes/nvidia.com/images/favicon.ico" />
  118. <link href="css/helper.css" media="screen" rel="stylesheet" type="text/css" />
  119.  
  120. <!-- Beginning of compulsory code below -->
  121.  
  122. <link href="css/dropdown/dropdown.css" media="screen" rel="stylesheet" type="text/css" />
  123. <link href="css/dropdown/themes/nvidia.com/default.advanced.css" media="screen" rel="stylesheet" type="text/css" />
  124.  
  125. <link href="css/horizontal-centering.css" media="all" rel="stylesheet" type="text/css" />
  126.  
  127. <!-- / END -->
  128.  
  129. </head>
  130. <body class="nvidia-com">
  131. <div id="fb-root"></div>
  132. <script>(function(d, s, id) {
  133. var js, fjs = d.getElementsByTagName(s)[0];
  134. if (d.getElementById(id)) return;
  135. js = d.createElement(s); js.id = id;
  136. js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
  137. fjs.parentNode.insertBefore(js, fjs);
  138. }(document, 'script', 'facebook-jssdk'));</script>
  139. <script type="text/javascript" src="js/whcookies.js"></script>
  140. <div class="wrapper">
  141.  
  142. <div class="container">
  143.  
  144.  
  145. <p><a href="/login.php" class="main-site">Logowanie</a></p>
  146. <p><a href="/register.php" class="main-site">Rejestracja</a></p>
  147.  
  148. <h1><img src="../logo.png" alt="Pileczka.com.PL" /></h1>
  149.  
  150.  
  151.  
  152.  
  153. <?php
  154. require_once ('menu.php');
  155. ?>
  156.  
  157.  
  158. <!-- / END -->
  159.  
  160.  
  161. </div>
  162.  
  163.  
  164. </div>
  165.  
  166.  
  167. <style type="text/css">
  168. #stickymsg {
  169. position: fixed;
  170. bottom: 10px;
  171. line-height: 16px;
  172. right: 10px;
  173. z-index: 30000;
  174. opacity: 0.8;
  175. width: 300px;
  176. height: auto;
  177. background: #5d0000;
  178. color: #fff;
  179. text-shadow: rgba(0,0,0,0.3) 0px -1px 0px;
  180. padding: 10px;
  181. text-decoration: none;
  182. font-size: 11px;
  183. font-family: Tahoma;
  184. border: 1px solid #771b1b;
  185. box-shadow: rgba(0,0,0,0.3) 0px 1px 4px, inset #f66c6c 0px 1px 0px;
  186. border-radius: 3px;
  187. }
  188. #stickymsg a{ color: #fff; font-weight:bold; text-decoration: none; }
  189. #stickymsg:hover{ opacity: 1; }
  190. </style>
  191. <div id="stickymsg"><span style="font-size: 12px;"><strong class="bbc">Witaj na Pileczka.com.pl</strong><br>
  192. <br>
  193. <strong class="bbc">Jesteś niezarejestrowany lub niezalogowany i nie możesz w pełni korzystać ze strony.</strong><br>
  194. <br>
  195. <strong class="bbc">Aby w pełni korzystać z przywilejów na stronie oraz brać udział w życiu piłki nożnej należy się <a href="register.php" class="bbc_url" title=""><span style="color: #a17700">Zarejestrować</span></a> lub <a href="login.php" class="bbc_url" title=""><span style="color: #a17700">Zalogować</span></a>.</strong><br></body></div>
  196. </html>
  197.  
  198. <?php
  199.  
  200.  
  201.  
  202. }
  203. ?>
Turson
Login.php
  1. <?php
  2. ?>
  3. <center>
  4. <?php
  5. require_once ('szkielet.php');
  6. require 'header.php'; // Dołącz początkowy kod HTML
  7. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  8.  
  9. /**
  10.   * SKRYPT LOGOWANIA
  11.   */
  12. require_once 'user.class.php'; // Dołączamy rdzeń systemu użytkowników
  13.  
  14. // Zabezpiecz zmienne odebrane z formularza, przed atakami SQL Injection
  15. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  16. $pass = mysql_real_escape_string($_POST['pass']);
  17.  
  18. if ($_POST['send'] == 1) {
  19. // Sprawdź, czy wszystkie pola zostały uzupełnione
  20. if (!$login or empty($login)) {
  21. die ('<p class="error">Wypełnij pole z loginem!</p>');
  22. }
  23.  
  24. if (!$pass or empty($pass)) {
  25. die ('<p class="error">Wypełnij pole z hasłem!</p>');
  26. }
  27.  
  28. // Posól i zahashuj hasło
  29.  
  30. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  31. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  32.  
  33. if ($userExists[0] == 0) {
  34. // Użytkownik nie istnieje w bazie
  35. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  36. }
  37.  
  38. else {
  39. // Użytkownik istnieje
  40. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  41.  
  42. // Przypisz pobrane dane do sesji
  43. $zapytanie = mysql_query("SELECT id FROM users WHERE login='$login'") or die(mysql_error());
  44. if ($zapytanie)
  45. {
  46. $wynik = mysql_fetch_array($zapytanie);
  47. $_SESSION['id'] = $wynik['id'];
  48. $_SESSION['login'] = $login;
  49. $_SESSION['pass'] = $pass;
  50. }
  51.  
  52. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  53. }
  54. }
  55.  
  56. else {
  57. /**
  58.   * FORMULARZ LOGOWANIA
  59.   */
  60. ?>
  61.  
  62. <form method="post" action="">
  63. <label for="login">Login:</label>
  64. <input type="text" name="login" maxlength="32" id="login" />
  65.  
  66. <label for="pass">Hasło:</label>
  67. <input type="password" name="pass" maxlength="32" id="pass" /><br />
  68.  
  69. <input type="hidden" name="send" value="1" />
  70. <input type="submit" value="Zaloguj" />
  71. </form>
  72.  
  73. <?php
  74. }
  75.  
  76. require 'footer.php'; // Dołącz końcowy kod HTML
  77. ?>
  78. </center>


Strona dla admina
  1. <?php
  2. require_once ('szkielet.php');
  3. ?>
  4.  
  5. <?php
  6. $queryResult = mysql_query("SELECT Admin FROM users WHERE id='$_SESSION[id]'")
  7. or die("Zapytanie niepoprawne");
  8.  
  9. if ($queryResult == 1) {
  10. echo 'Jesteś adminem';
  11. } ?>
  12.  
  13. <?php
  14. require_once ('stopka.php');
  15. ?>


Pytanie tylko - czy masz kolumnę 'admin' w tabeli 'users' i dla admina wartość 1?
szymon202
Tak mam.
Turson
Sprawdź to co wkleiłem.
szymon202
Nadal nie wyświetla się echo.
Turson
$queryResult jest TYLKO zapytaniem, a nie jest wynikiem z zapytania...

  1. <?php
  2. require_once ('szkielet.php');
  3. ?>
  4.  
  5. <?php
  6. $queryResult = mysql_query("SELECT Admin FROM users WHERE id='$_SESSION[id]'")
  7. or die("Zapytanie niepoprawne");
  8. if ($queryResult)
  9. {
  10. $wynik = mysql_fetch_array($queryResult);
  11. if($wynik["Admin"]==1)
  12. { echo "Jesteś adminem";}
  13. else { echo "Nie jesteś adminem";}
  14. }
  15. } ?>
  16.  
  17. <?php
  18. require_once ('stopka.php');
  19. ?>
szymon202
Teraz działa. Dziękuję.
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.