Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP] Zmiana hasła - brak informacji o błędach
Laxus
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.03.2017

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


Mam problem ze skryptem odpowiedzialnym za zmianę hasła użytkownika.

W poniższym kodzie linie 7-40 odpowiadają za walidację formularza do zmiany hasła.
Formularz to linie 84-108.
Zaś w liniach 118-133 umieściłem dwa spany, w których ma wyświetlać się informacja o zmianie hasła, bądź błędzie.

Kod w zasadzie działa poprawnie, bo hasło się zmienia, jeśli spełnione są wszystkie warunki. Problem w tym, że nie wyświetlają mi się w spanach żadne informacje.

Gapię się w kod już z godzinę i nie mogę dojść co jest nie tak (IMG:style_emoticons/default/sad.gif)

  1. <?php
  2. if( !isset( $_SESSION[ 'logged' ] ) ) {
  3. header( 'Location: ../index.php' );
  4. exit();
  5. }
  6. if( isset( $_POST[ 'change-password-submit' ] ) ) {
  7. $validate = true;
  8. if( $_POST[ 'old-password' ] != password_verify($_POST[ 'old-password' ], $_SESSION[ 'logged' ] [ 'password' ] ) ) {
  9. $_SESSION[ 'change_password_error' ] = 'Stare hasło jest niepoprawne';
  10. $validate = false;
  11. }
  12. if( strlen( $_POST[ 'new-password' ] ) < 8 || strlen( $_POST[ 'new-password' ] ) > 12 ) {
  13. $_SESSION[ 'change_password_error' ] = 'Nowe hasło musi mieć 8-12 znaków';
  14. $validate = false;
  15. }
  16. if( $_POST[ 'new-password' ] != $_POST[ 'new-password2' ] ) {
  17. $_SESSION[ 'change_password_error' ] = 'Nowe hasła nie są identyczne';
  18. $validate = false;
  19. }
  20. if( empty( $_POST[ 'old-password' ] ) || empty( $_POST[ 'new-password' ] ) || empty( $_POST[ 'new-password2' ] ) ) {
  21. $_SESSION[ 'change_password_error' ] = 'Musisz wypełnić wszystkie pola;';
  22. $validate = false;
  23. }
  24. if( $validate == false ) {
  25. header( 'Location: profile.php' );
  26. } else {
  27. $password = password_hash( $_POST[ 'new-password' ], PASSWORD_DEFAULT );
  28. try {
  29. require_once( 'connect.php' );
  30. $change_password = $pdo -> prepare( "UPDATE users SET password = :password" );
  31. $change_password -> bindParam( ':password', $password );
  32. $change_password -> execute();
  33. } catch(PDOException $e) {
  34. echo 'ERROR: ' . $e -> getMessage();
  35. }
  36. $_SESSION[ 'change_password_success' ] = 'Twoje hasło zostało zmienione';
  37. header( 'Location: profile.php' );
  38. }
  39. }
  40. ?>
  41.  
  42. <!DOCTYPE html>
  43. <html>
  44. <head>
  45. <meta charset="utf-8">
  46. <title>
  47. Profil użytkownika
  48. <?php
  49. echo $_SESSION[ 'logged' ] [ 'login' ];
  50. ?>
  51. </title>
  52. <link rel="stylesheet" type="text/css" href="../css/screen.css" media="screen">
  53. </head>
  54. <body>
  55. <?php
  56. include_once( 'top.php' );
  57. ?>
  58.  
  59. <aside id="profile">
  60. <h1>
  61. Profil użytkownika
  62. <?php
  63. echo $_SESSION[ 'logged' ] [ 'login' ];
  64. ?>
  65. </h1>
  66. <img src="../img/users/<?php echo $_SESSION[ 'logged' ] [ 'avatar' ]; ?>" alt="<?php echo $_SESSION[ 'logged' ] [ 'avatar' ]; ?>">
  67. <table border="1">
  68. <tr>
  69. <td>Nazwa użytkownika: </td>
  70. <td><?php echo $_SESSION[ 'logged' ] [ 'login' ]; ?></td>
  71. </tr>
  72. <tr>
  73. <td>Adres e-mail: </td>
  74. <td><?php echo $_SESSION[ 'logged' ] [ 'email' ]; ?></td>
  75. </tr>
  76. <tr>
  77. <td>Data założenia konta: </td>
  78. <td><?php echo $_SESSION[ 'logged' ] [ 'date' ]; ?></td>
  79. </tr>
  80. <tr>
  81. <td colspan="2"><a href="#" id="change_password" onclick="toggle('change_password_div');">Zmień hasło</a></td>
  82. <div id="change_password_div" style="display: none;">
  83. <form action="profile.php" method="post">
  84. <ul>
  85. <li>
  86. <label for="old-password">Stare hasło</label>
  87. </li>
  88. <li>
  89. <input type="password" name="old-password" id="old-password">
  90. </li>
  91. <li>
  92. <label for="new-password">Nowe hasło</label>
  93. </li>
  94. <li>
  95. <input type="password" name="new-password" id="new-password">
  96. </li>
  97. <li>
  98. <label for="new-password2">Powtórz hasło</label>
  99. </li>
  100. <li>
  101. <input type="password" name="new-password2" id="new-password2">
  102. </li>
  103. <li>
  104. <input type="submit" name="change-password-submit" id="change-password-submit" value="Zmień hasło">
  105. </li>
  106. </ul>
  107. </form>
  108. </div>
  109. </tr>
  110. <tr>
  111. <td colspan="2"><a href="#" id="change_avatar">Zmień obraz konta</a></td>
  112. </tr>
  113. <tr>
  114. <td colspan="2"><a href="logout.php">Wyloguj się</a></td>
  115. </tr>
  116. </table>
  117. <span class="error change-password-error">
  118. <?php
  119. if( isset( $_SESSION[ 'change_password_error' ] ) ) {
  120. echo $_SESSION[ 'change_password_error' ];
  121. unset( $_SESSION[ 'change_password_error' ] );
  122. }
  123. ?>
  124. </span>
  125. <span class="success change-password-success">
  126. <?php
  127. if( isset( $_SESSION[ 'change_password_success' ] ) ) {
  128. echo $_SESSION[ 'change_password_success' ];
  129. unset( $_SESSION[ 'change_password_success' ] );
  130. }
  131. ?>
  132. </span>
  133. </aside>
  134. <script type="text/javascript" src="../js/script.js"></script>
  135. </body>
  136. </html>
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: 22.08.2025 - 19:18