Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Skrypt zmiany hasła użytkownika
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Witam wszystkich forumowiczów (IMG:style_emoticons/default/smile.gif)
Postanowiłem napisać sobie skrypt zmiany hasła dla użytkownika, ale mam problem.
Robię to w dwóch etapach. Najpierw użytkownik podaje login, email oraz teraźniejsze hasło. Skrypt ma w tym momencie za zadanie sprawdzić czy takie dane istnieją w bazie. Jak na razie problem polega na tym: podaje prawidłowo wszystkie dane,a skrypt wyrzuca komunikat:
Kod
Podane hasło jest nieprawidłowe
Podany email jest nie prawidłowy

Ale pomimo tych komunikatów przechodzi do kolejnego kroku czyli zmiany hasła. Nie mam pojęcie co jest nie tak dlatego tutaj pisze.
Proszę o pomoc.
Z góry dziękuje (IMG:style_emoticons/default/smile.gif)
Pozdrawiam,
adrianozo (IMG:style_emoticons/default/smile.gif)

zmien_haslo.php
  1. <?php
  2. if(!$_SESSION['access'] || !$_SESSION['login'])
  3. {
  4. header('Location: index.php');
  5. }
  6. include('include/db.php');
  7. if(isset($_POST['loginek']))
  8. {
  9. if($_POST['loginek'] && $_POST['haslo'] && $_POST['send'])
  10. {
  11. $haslo = strip_tags(htmlspecialchars(mysql_real_escape_string(md5(sha1($_POST['haslo'])))));
  12. $haslo1 = strip_tags(htmlspecialchars(mysql_real_escape_string(md5(sha1($_POST['haslo1'])))));
  13. $haslo2 = strip_tags(htmlspecialchars(mysql_real_escape_string(md5(sha1($_POST['haslo2'])))));
  14. $haslo3 = strip_tags(htmlspecialchars(mysql_real_escape_string(md5(sha1($_POST['haslo3'])))));
  15. $zapytanie = 'SELECT * FROM admin WHERE loginek="'.$login.'" and haslo="'.$haslo.'" LIMIT 1';
  16. $idzapytania = mysql_query($zapytanie);
  17. $znajdz = mysql_fetch_array($idzapytania);
  18. }
  19. }
  20. if(!isset($_POST['loginek']) && empty($_POST['loginek']) && !isset($_POST['email']) && empty($_POST['email']) && !isset($_POST['haslo']) && empty($_POST['haslo']))
  21. {
  22. echo '<form action="index.php?page=zmien_haslo&wpis=1" method="post"><br />
  23. <input type="hidden" name="send" value="1" />
  24. Podaj login<br />
  25. <input type="text" name="loginek" />
  26. <br /><br />Podaj adres email<br />
  27. <input type="text" name="email" />
  28. <br /><br />Podaj aktualne hasło<br />
  29. <input type="password" name="haslo" /><br /><br />
  30. <input name="dalej" type="submit" value="Dalej" /></form><br />
  31. <a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  32. }
  33. if(isset($_POST['loginek']) && !empty($_POST['loginek']) && !empty($_POST['email']) && !empty($_POST['email']) && !empty($_POST['haslo']) && !empty($_POST['haslo']))
  34. {
  35. echo '<form action="index.php?page=zmien_haslo&wpis=2" method="post"><br />
  36. <input type="hidden" name="send" value="2" />
  37. Podaj stare hasło<br />
  38. <input type="password" name="haslo1" />
  39. <br /><br />Podaj nowe hasło<br />
  40. <input type="password" name="haslo2" />
  41. <br /><br />Powtórz nowe hasło<br />
  42. <input type="password" name="haslo3" /><br /><br />
  43. <input name="zapisz" type="submit" value="Zapisz" /></form><br />
  44. <a style="text-decoration: none;" href="index.php?page=paneladmina">Wróć do Panelu Administratora</a><br /><br />';
  45. }
  46. $error = '';
  47. $blad = '';
  48. if((isset($_POST['dalej'])))
  49. {
  50. if(empty($_POST["loginek"]) or empty($_POST["email"]))
  51. {
  52. $error .= 'Nie wypełniono wszystkich pól<br />';
  53. }
  54. if($znajdz['loginek']!=$loginek)
  55. {
  56. $error .= 'Podany login jest nieprawidłowy<br />';
  57. }
  58. if($znajdz['haslo']!=$haslo)
  59. {
  60. $error .= 'Podane hasło jest nieprawidłowe<br />';
  61. }
  62. if($znajdz['email']!=$email)
  63. {
  64. $error .= 'Podany email jest nie prawidłowy<br />';
  65. }
  66. if(!empty($error))
  67. {
  68. echo $error;
  69. }
  70. if((isset($_POST['dalej'])))
  71. {
  72. if(empty($_POST["haslo1"]) or empty($_POST["haslo2"]) or empty($_POST["haslo2"]))
  73. {
  74. $error .= 'Nie wypełniono wszystkich pól<br />';
  75. }
  76. if($_POST['haslo1']!=$_POST['haslo2'] && $_POST['haslo2']!=$_POST['haslo3'])
  77. {
  78. $blad .= 'Podane hasła nie są identyczne.<br />';
  79. }
  80. if(!empty($blad))
  81. {
  82. echo $blad;
  83. }
  84. if(isset($_POST['zapisz']) && !empty($_POST['zapisz']))
  85. {
  86. $zapytanie2 = 'UPDATE admin SET haslo="'.$haslo3.'" WHERE loginek="'.$login.'"';
  87. $idzapytania2 = mysql_query($zapytanie2);
  88. }
  89. }
  90. }
  91. if(isset($_POST['send']))
  92. {
  93. if($_POST['send'])
  94. {
  95. if(isset($idzapytania2))
  96. {
  97. if($idzapytania2 === TRUE)
  98. {
  99. echo '<font color="green"><strong>Hasło zostało zmienione.</strong></font><br /><br />';
  100. }
  101. else
  102. {
  103. echo '<font color="red"><strong>Nie udało się zmienić hasła. Proszę spróbować za jakiś czas!</strong></font><br /><br />';
  104. }
  105. }
  106. }
  107. }
  108. mysql_close($connect);
  109. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


O coś takiego dla haseł to niepotrzebne męczenie serwera:
  1. $haslo = strip_tags(htmlspecialchars(mysql_real_escape_string(md5(sha1($_POST['haslo'])))));

Pierwsze sha1 przecież usunie z tego niebezpieczne znaki. Reszta przed jest całkowicie niepotrzebna.

Rozpisz to sobie na kartce, na jakimś prostym schemacie blokowym krok po kroku co ma się dziać. Generalnie masz niewiele kroków
1. Wyświetlanie formularza
2. Validacja formularza po przesłaniu
3. Odpytanie bazy danych czy podane dane są ok
4. W zależności od wyniku albo aktualizacja danych, albo wyświetlenie komunikatu

Napisz na pozątku podstawowe bloki if/else, potem dopiero uzupełniaj je kodem, może tak będzie łatwiej.
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: 2.10.2025 - 17:14