Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie, drobna pomoc;]
Forum PHP.pl > Forum > Przedszkole
ReBeLs513
Witam! Mam taki kod logowania:
  1. <?php
  2.  
  3. $uzytkownicy = array(1 =>
  4. array('login' => 'admin', 'haslo' => sha1('admin')),
  5. array('login' => 'user1', 'haslo' => sha1('ddd')),
  6. array('login' => 'user2', 'haslo' => sha1('fff'))
  7. );
  8.  
  9. function czyIstnieje($login, $haslo)
  10. {
  11. global $uzytkownicy;
  12.  
  13. $haslo = sha1($haslo);
  14.  
  15. foreach($uzytkownicy as $id => $dane)
  16. {
  17. if($dane['login'] == $login && $dane['haslo'] ==
  18.  
  19. $haslo)
  20. {
  21. // O, jest ktos taki - zwroc jego ID
  22. return $id;
  23. }
  24. }
  25. // Jeżeli doszedłeś a tutaj, to takiego użytkownika nie ma
  26. return false;
  27. } // end czyIstnieje();
  28. // Wlasciwy skrypt
  29.  
  30.  
  31. if(!isset($_SESSION['uzytkownik']))
  32. {
  33. // Sesja się zaczyna, wiec inicjujemy użytkownika
  34.  
  35. anonimowego
  36. $_SESSION['uzytkownik'] = 0;
  37. }
  38. if($_SESSION['uzytkownik'] > 0)
  39. {
  40. // Ktos jest zalogowany
  41. echo 'Witaj, '.$uzytkownicy[$_SESSION['uzytkownik']]
  42.  
  43. ['login'].' na naszej stronie!';
  44. }
  45. else
  46. {
  47. // Niezalogowany
  48. if($_SERVER['REQUEST_METHOD'] == 'POST')
  49. {
  50. if(($id = czyIstnieje($_POST['login'], $_POST
  51.  
  52. ['haslo'])) !== false)
  53. {
  54. // Logujemy uzytkownika, wpisal
  55.  
  56. poprawne dane
  57. $_SESSION['uzytkownik'] = $id;
  58. echo 'Dziekujemy, zostales
  59.  
  60. zalogowany! <a href="index.php">Dalej</a>';
  61. }
  62. else
  63. {
  64. echo 'Podales nieprawidlowe dane,
  65.  
  66. zegnaj! <a href="index.php">Dalej</a>';
  67. }
  68. }
  69. else
  70. {
  71. echo '<form method="post" action="index.php">
  72. Zaloguj sie: <input type="text"
  73.  
  74. name="login"/>
  75. <input type="password" name="haslo"/>
  76. <input type="submit"
  77.  
  78. value="OK"/></form>';
  79. }
  80. }
  81.  
  82.  
  83. if (!isset($_SESSION['inicjuj']))
  84. {
  85. $_SESSION['inicjuj'] = true;
  86. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  87. }
  88.  
  89.  
  90. if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
  91. {
  92. die('Proba przejecia sesji udaremniona!');
  93. }
  94.  
  95. ?>


Mam pytanie: jak zrobić, aby jeśli zaloguje się user1 lub user2 to i tak do tej strony nie będzie miał dostępu (tylko admin)?

Taki kod nie działa:
  1. <?php
  2. if (isset($_SESSION['uzytkownik']) && ($_SESSION['uzytkownik']=='admin') )
  3. {
  4. echo "Witaj Adminie:)";
  5. }
  6. else
  7.  
  8. {
  9. echo "Nie jesteś adminem! Narqa ;)";
  10. }
  11. ?>


Proszę o szybką odpowiedź, dzięki.
CuteOne
a sprawdzałeś co zawiera tablica SESSION po zalogowaniu?

  1. <?php
  2.  
  3. echo '<pre>';
  4. print_r($_SESSION);
  5. echo '</pre>';
  6. ?>


ps. gdzie masz session_write_close() ?
lord2105
  1. <?php
  2. if (isset($_SESSION['uzytkownik']) && ($_SESSION['uzytkownik']==1) )
  3. {
  4. echo "Witaj Adminie:)";
  5. }
  6. else
  7.  
  8. {
  9. echo "Nie jeste? adminem! Narqa ;)";
  10. }
  11. ?>
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.