Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie
Forum PHP.pl > Forum > PHP
glass
Mam problem gdyż chcę stworzyć logowanie na podstawie sesji, dobrnąłem do punktu w którym tworze tablicę z danymi oraz funkcję weryfikującą, miałbym masę pytań ale nie chcę zanudzać, najważniejsze pytanie brzmi dlaczego to nie działa .. tablica i funkcje są raczej mało skomplikowane, najwyraźniej któreś polecenie nie chce chodzić jak należy .. wiem że to nie koniec skryptu, jednak na tym etapie z tego co rozumiem to powinno już działać ..

proszę o podsunięcie pomysłu .. ?

oto kod:
  1. <?php
  2. $login=$_POST['login'];
  3. $haslo=$_POST['haslo'];
  4.  
  5. $uzytkownicy = array(=>
  6. array('login' => 'user1', 'haslo' => sha1('ppp')),
  7. array('login' => 'user2', 'haslo' => sha1('ddd')),
  8. );
  9.  
  10. function czyIstnieje($login, $haslo)
  11. {
  12. global $uzytkownicy;
  13.  
  14. $haslo = sha1($haslo);
  15.  
  16. foreach($uzytkownicy as $id => $dane)
  17. {
  18. if($dane['login'] == $login && $dane['haslo'] == $haslo)
  19. {
  20. // O, jest ktos taki - zwroc jego ID
  21. return $id;
  22. echo 'witaj';
  23. }
  24. }
  25. // Jeżeli doszedłeś a tutaj, to takiego użytkownika nie ma
  26. return false;
  27. } // end czyIstnieje();
  28.  
  29. ?>
  30.  
  31. <?PHP
  32. echo '
  33. <form method="post" action="sesja.php">
  34. Zaloguj sie: 
  35. <input type="text" name="login">
  36. <input type="password" name="haslo">
  37. <input type="submit" value="OK">
  38. </form>';
  39. ?>
ayeo
Spróbuj tak:
  1. <?php
  2.  
  3. $login=$_POST['login'];
  4. $haslo=$_POST['haslo'];
  5.  
  6. $uzytkownicy = array(
  7. => array('login' => 'user1', 'haslo' => sha1('ppp')),
  8. => array('login' => 'user2', 'haslo' => sha1('ddd'))
  9.  );
  10.  
  11. function czyIstnieje($login, $haslo)
  12. {
  13. global $uzytkownicy;
  14. $haslo = sha1($haslo);
  15.  
  16. foreach($uzytkownicy as $id => $dane)
  17. {
  18. if($dane['login'] == $login && $dane['haslo'] == $haslo)
  19. {
  20. echo 'witaj';
  21. return $id;
  22. }
  23. }
  24. return false;
  25. } 
  26.  
  27. echo czyIstnieje('user1','ppp');
  28.  
  29. ?>
netmare
Jak na ten poziom to ja proponuję zmienić strukturę tablicy i zrobić 'user1' => 'jakieshaslo','user2'=>'innehaslo' i sprawdzać isset(dane[$login]) i czy $haslo==dane[$login] zamiast tej konstrukcji foreach.
ayeo
@netmare, słuszna uwaga biggrin.gif
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.