Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie i rejestracja dla Admina
Forum PHP.pl > Forum > PHP
michu9010
witam,
mam taki maly problem, a wlasciwie to sie zastanawiam jak wykonac logowanie dla Admina korzystajac z pliku login.php gdzie sie moze zalogowac tez zwykly user..
ten pliczek :
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // połączenie z mysql
  8. require('funkcje.php');
  9. include ('top.php');
  10.  
  11.  
  12. // sprawdzamy czy user jest już zalogowany
  13. if($_SESSION['logged']) echo 'Panel uzytkownika!';
  14.  
  15. else
  16. {
  17. // tworzymy prosty formularz
  18. echo '<form action="login.php" method="POST">
  19. <table border="0" align="center" cellpadding="0" cellspacing="0">
  20. <tr>
  21. <td>Login:</td>
  22. <td><input type="text" name="nick" /></td>
  23. </tr>
  24. <tr>
  25. <td>Hasło</td>
  26. <td><input type="password" name="pass" /></td>
  27. </tr>
  28. <tr>
  29. <td colspan="2" align="center">
  30.  
  31. <input type="submit" name="ok" value="Zaloguj" />
  32. </td>
  33. </tr>
  34. </table>
  35.  
  36. </form>';
  37.  
  38. // jeœli zostanie naciœnięty przycisk "Zaloguj"
  39. if(isset($_POST['ok']))
  40. {
  41. $nick = $_POST['nick'];
  42. $pass = $_POST['pass'];
  43.  
  44. // sprawdzamy czy wszystkie dane zostały podane
  45. if(empty($nick) || empty($pass)) echo '<div class="error">Wpisz wszystkie pola!</div>';
  46. // jeœli tak...
  47. else
  48. {
  49. // filtrujemy dane
  50.  
  51. // kodujemy hasło
  52. $pass = md5($pass);
  53.  
  54. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  55. $result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
  56.  
  57. // jeœli nie istnieje
  58. if(mysql_num_rows($result)==0) echo '<div class="error">Niestety podałes niepoprawne dane!</div>';
  59. // jeœli tak...
  60. else
  61. {
  62. // dodajemy wynik zapytania do tablicy
  63. $row = mysql_fetch_array($result);
  64.  
  65. // ustawianie sesji że użytkownik jest zalogowany
  66. $_SESSION['logged'] = true;
  67.  
  68. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  69. $_SESSION['id'] = $row['id'];
  70. $_SESSION['nick'] = $row['nick'];
  71. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  72.  
  73. // wyœwietlenie komunikatu oznaczającego poprawne logowanie
  74. echo '<meta http-equiv="Refresh" content="0; url=login.php" />';
  75. }
  76. }
  77. }
  78. }
  79. include 'botom.php';
  80. // rozłączenie z bazą danych
  81.  
  82. // koniec buforowania
  83. ?>
  84.  
  85.  


dziekuje za pomoc
Future
Jezeli masz tylko jednego admina to możesz zrobić warunek AND id = 1 i pod nim cze¶ć dla admina, z kolei dla paru ja osobi¶cie używam komórki isAdmin w bazie danych.

edit:

$_SESSION['id'] = $row['id'];
^ sam ten kawałek, który już masz dużo Ci pomoże
robal94
zrób w swojej bazie dodatkow± kolumnę np status w którym zwykły użytkownik będzie miał 0 a admin 1 i póĽniej podobny warunek jak u kolegi tylko że if(status==1)
michu9010
dzieki wszyskim za podpowiedzi. Poradzilem sobie smile.gif w taki sposob smile.gif
  1. <?php
  2. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  3.  
  4. // start sesji
  5.  
  6. // połączenie z mysql
  7. require('funkcje.php');
  8. include ('top.php');
  9.  
  10. // jeœli user jest zalogowany
  11. if($_SESSION['nick']=="admin")
  12. {
  13. // wyœwietlamy userowi jego dane
  14. echo 'Witaj '.$_SESSION['nick'].'! ';
  15. /*
  16.   echo 'Twój ID to: '.$_SESSION['id'].'.<br />';
  17.   echo 'Zarejestrowałes się u nas: '.date("d.m.Y, H:i", $_SESSION['data_rejestracji']).'<br />';
  18.   */
  19. echo '<a href="index.php?id=logout"><img src="images/wyloguj.gif" title="Wyloguj sie" /></a>';
  20. }
  21. // jeœli nie jest zalogowany
  22. else
  23. {
  24.  
  25. echo "<div class=error>Brak uprawnien do panelu administratora!</div>";
  26. }
  27. include 'botom.php';
  28. // rozłączenie z bazą danych
  29.  
  30. // koniec buforowania
  31. ?>
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.