Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Panel logowania - admin
Forum PHP.pl > Forum > PHP
agniecha1818
Witam. Mam problem z dodaniem i sprawdzeniem zalogowanego admina. W bazie jest rekord który sprawdza admina (admin tinyint)Bardzo prosiłabym gdybyście mi pomogli dodać admina do skryptu logowania


  1.  
  2.  
  3. <?php
  4. require_once ('./includes/config.inc.php');
  5.  
  6. // Ustawiamy tytuł strony i dołączamy nagłówek HTML.
  7. $page_title = 'Logowanie';
  8. include ('./includes/header.html');
  9.  
  10. if (isset($_POST['submitted'])) { // Sprawdzamy, czy formularz został przesłany.
  11.  
  12. require_once ('../mysql_connect.php'); // Łączymy się z bazą danych.
  13.  
  14. // Sprawdzamy poprawność adresu e-mail.
  15. if (!empty($_POST['email'])) {
  16. $e = escape_data($_POST['email']);
  17. } else {
  18. echo '<p><font color="red" size="+1">Podaj adres e-mail!</font></p>';
  19. $e = FALSE;
  20. }
  21.  
  22. // Sprawdzamy poprawność hasła.
  23. if (!empty($_POST['pass'])) {
  24. $p = escape_data($_POST['pass']);
  25. } else {
  26. $p = FALSE;
  27. echo '<p><font color="red" size="+1">Podaj haslo!</font></p>';
  28. }
  29.  
  30. if ($e && $p) { // Jeśli wszystko jest w porządku...
  31.  
  32. // Wysyłamy zapytanie do bazy danych.
  33. $query = "SELECT pracownik_id, imie FROM pracownicy WHERE (email='$e' AND pass=SHA('$p')) ";
  34. $result = mysql_query ($query) or trigger_error("Zapytanie: $query\n<br />Błąd MySQL: " . mysql_error());
  35.  
  36. if (@mysql_num_rows($result) == 1) { // Znaleziono pasujący rekord.
  37.  
  38. // Rejestrujemy wartości i przekierowujemy użytkownika.
  39. $row = mysql_fetch_array ($result, MYSQL_NUM);
  40. mysql_close(); // Zamykamy połączenie z bazą danych.
  41. $_SESSION['imie'] = $row[1];
  42. $_SESSION['pracownik_id'] = $row[0];
  43.  
  44.  
  45. // Zaczynamy definicję adresu URL.
  46. $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
  47. // Sprawdzamy końcowy ukośnik.
  48. if ((substr($url, -1) == '/') OR (substr($url, -1) == '\\') ) {
  49. $url = substr ($url, 0, -1); // Odcinamy ukośnik.
  50. }
  51. // Dodajemy stronę.
  52. $url .= '/index.php';
  53.  
  54. ob_end_clean(); // Usuwamy bufor.
  55. header("Location: $url");
  56. exit(); // Kończymy działanie skryptu.
  57. } else { // Nie znaleziono pasującego rekordu.
  58. echo '<p><font color="red" size="+1">Adres e-mail i haslo nie pasuja do przechowywanych w bazie danych albo jeszcze nie uaktywniłeś swojego konta.</font></p>';
  59. }
  60.  
  61. } else { // Jeśli coś jest nie w porządku...
  62. echo '<p><font color="red" size="+1">Spróbuj jeszcze raz.</font></p>';
  63. }
  64.  
  65. mysql_close(); // Zamykamy połączenie z bazą danych.
  66.  
  67. } // Koniec instrukcji warunkowej sprawdzającej, czy formularz został przesłany.
  68. ?>
  69.  
  70. <h1>Logowanie</h1>
  71. <p>Aby się zalogować, musisz zezwolić na przyjmowanie plików cookie.</p>
  72. <form action="login.php" method="post">
  73. <fieldset>
  74. <p><b>Adres e-mail:</b> <input type="text" name="email" size="20" maxlength="40" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
  75. <p><b>Hasło:</b> <input type="password" name="pass" size="20" maxlength="20" /></p>
  76. <div align="center"><input type="submit" name="submit" value="Logowanie" /></div>
  77. <input type="hidden" name="submitted" value="TRUE" />
  78. </fieldset>
  79. </form>
  80.  
  81. <?php // Dołączamy stopkę HTML.s
  82. include ('./includes/footer.html');
  83. ?>
bastard13
Z tego co rozumiem masz tabelę Pracownicy z kolumnami id, imie, email, pass.
I chcesz teraz jeszcze dodać coś do obsługi adminów, czy tak?
W takim wypadku stwórz sobie tabelę np. Roles z kolumnami id i name. I z rekordami: id=1, name=admin oraz id=2, name=pracownicy.
Zamień swoją tabelę Pracownicy na Users, dodaj do niej kolumnę role_id, gdzie wartość będzie wskazywała na odpowiedni typ roli (w ten sposób nie ma również problemu z dodawaniem innych ról).
W ten sposób logowanie będzie praktycznie takie samo i na końcu sprawdzasz tylko jaką rolę ma przypisaną zalogowany użytkownik.
cer98
ACL - Acces Control List
agniecha1818
Problemik już rozwiązany, dziękuje
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.