Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem ze skryptem logowania, gdzie leży problem?
Bastian
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.09.2009

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


Witam,
Ucze się php, i robie prosty programik do logowania. Wykorzystane są 2 skrypty:

rejestrujący userów:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  5. <title>Moj projekt</title>
  6. </head>
  7. <body>
  8.  
  9. <?php
  10.  
  11. define('BAZA','./baza.txt');
  12.  
  13. function Dodawanie($login, $haslo, $email)
  14. {
  15. if(strlen($login) < 3)
  16. {
  17. return false;
  18. }
  19. if(strlen($haslo) < 3)
  20. {
  21. return false;
  22. }
  23. if(!preg_match("/^[a-zA-Z0-9\.\_\-]+\@[a-zA-Z0-9\.\_\-]+\.[a-z]{2,4}$/D",$email))
  24. {
  25. return false;
  26. }
  27.  
  28. $baza = fopen(BAZA,'a');
  29.  
  30. $tablica_bazy = array (0 =>
  31. (nl2br(htmlspecialchars($login))),
  32. (nl2br(htmlspecialchars($haslo))),
  33. );
  34.  
  35. fwrite($baza, implode("::",$tablica_bazy)."\r\n");
  36. fclose($baza);
  37.  
  38. return true;
  39. }
  40.  
  41. if ($_SERVER['REQUEST_METHOD'] == "POST")
  42. {
  43. if(Dodawanie($_POST['login'],$_POST['haslo'],$_POST['email']))
  44. {
  45. echo '<p>Dziekujemy, twoje konto zostalo utworzone</p>';
  46. }
  47. else
  48. {
  49. echo '<p>Podales bledne lub za krotkie dane</p>';
  50. }
  51. echo '<a href="index3.php">Powrot</a>';
  52. }
  53. ?>
  54. <form method="post" action="adduser3.php">
  55. <h>Login</h>
  56. <input type="text" name="login" />
  57. <h>Haslo</h>
  58. <input type="text" name="haslo" />
  59. <h>Email</h>
  60. <input type="text" name="email" />
  61. <input type="submit" value="wyslij" />
  62. </form>
  63. </body>
  64. </html>


Plik mini baza z danymi o userach, ich hasłach i kontach pocztowych:

baza.txt

oraz plik do logowania oraz sprawdzania czy user jest juz zalogowany z wykorzystaniem sesji.

  1. <?php
  2.  
  3.  
  4.  
  5. function wczytywanie()
  6. {
  7. global $rezultat;
  8. $wpisy=file('./baza.txt');
  9.  
  10. $rezultat=array();
  11.  
  12. foreach($wpisy as $wpis)
  13. {
  14. $wpis=explode("::",trim($wpis));
  15. $rezultat[]=array('login' =>$wpis[0], 'haslo' =>$wpis[1]);
  16.  
  17.  
  18. }
  19.  
  20. };
  21.  
  22. function sprawdzanko($login, $haslo)
  23. {
  24. global $rezultat;
  25. foreach($rezultat as $id => $dane)
  26. {
  27. if($dane['login']== $login && $dane['haslo']==$haslo)
  28. {
  29. return $id;
  30. }
  31. }
  32. return false;
  33. };
  34.  
  35.  
  36. if(!isset($_SESSION['uzytkownik']))
  37. {
  38.  
  39. $_SESSION['uzytkownik'] = 0;
  40. }
  41.  
  42. if($_SESSION['uzytkownik'] > 0)
  43. {
  44. echo 'Witaj '.$rezultat[$_SESSION['uzytkownik']['login']].' na stronie';
  45.  
  46. }
  47. else
  48. {
  49. if($_SERVER['REQUEST_METHOD']=='POST')
  50. {
  51. if(($id=sprawdzanko($_POST['login'],$_POST['haslo'])) !== false)
  52.  
  53. {
  54. echo 'Zostales zalogowany';
  55. }
  56. else
  57. {
  58. echo 'Podales zle dane';
  59. }
  60. }
  61. else
  62. {
  63. echo '<form method="post" action="index3.php"/>
  64. Zaloguj sie:<input type="text" name="login"><input type="text" name="haslo" />
  65. <input type="submit" value="OK" /></form>';
  66. }
  67.  
  68. }
  69. ?>
  70.  


Wydaje mi się, że powinno grać jednak po udanej rejestracji ,przy próbie logowania za każdym razem mam "Podałeś złe dane". Wydaje mi się, że coś moze być coś nie tak z funkcją sprawdzanko(); ale potrzebuje jakis wskazówek. (IMG:style_emoticons/default/sadsmiley02.gif)

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.08.2025 - 19:29