Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> logowanie, weryfikacja z tablicy
glass
post 21.04.2008, 11:56:11
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 23.03.2007
Skąd: United Kingdom

Ostrzeżenie: (10%)
X----


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. ?>


--------------------
Marcin Małysa
Zapisz się na listę mailingową http://tnij.org/mai_l otrzymasz porady webmastera i fragment e-book-a gratis
http://tnij.org/prezent_nagranie_mp3
Go to the top of the page
+Quote Post
ayeo
post 21.04.2008, 12:10:35
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
netmare
post 21.04.2008, 17:33:44
Post #3





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
ayeo
post 22.04.2008, 11:42:49
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


@netmare, słuszna uwaga biggrin.gif


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 18:31