Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Porównanie hasła z bazy i formularza
MrGohut
post 16.11.2013, 15:44:43
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 29.04.2013

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


Mam skrypt do zmiany hasła. Aby zmienić hasło trzeba wpisać obecne. Jak zrobić, aby skrypt porównywał zhashowane hasło w bazie z tym zhashowanym (przez skrypt) w formularzu ?
Próbowałem samemu ale mi to nie wychodzi ;/
  1. if ($_POST['send'] == 1) {
  2. $pass_aktualne = $_POST['pass_aktualne'];
  3. $pass = $_POST['pass'];
  4. $pass_v = $_POST['pass_v'];
  5.  
  6. $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły
  7.  
  8. if (!$pass_aktualne) $errors .= '- Musisz podać swoje stare hasło jeżeli chcesz je zmienić<br />';
  9. if (!$pass || !$pass_v ) $errors .= '- Musisz podać nowe hasło i wpisać je ponownie w następne pole<br />';
  10. if ($pass != $pass_v) $errors .= '- Hasła się nie zgadzają<br />';
  11.  
  12. if ($errors != '') {
  13. echo '<p class="error">Zmiana danych nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>';
  14. }
  15. else {
  16. //$pass = user::passSalter($pass);
  17. //$pass = hash("sha256", $pass);
  18.  
  19. try {
  20. $pass_aktualne = hash("sha256", $pass_aktualne);
  21.  
  22. $pass_porownaj = $db->prepare("SELECT COUNT(*) FROM users WHERE pass=:pass");
  23. $pass_porownaj->bindValue(':pass', $pass_aktualne, PDO::PARAM_STR);
  24. $pass_porownaj->execute();
  25.  
  26. if($pass_porownaj)
  27. {
  28. if($pass_porownaj==$pass_aktualne)
  29. {
  30. $pass = hash("sha256", $pass);
  31.  
  32. $zmiana_hasla = $db->prepare("UPDATE `users` SET `pass` = :pass WHERE `id` = :id");
  33. $zmiana_hasla->bindParam(':pass', $pass, PDO::PARAM_STR);
  34. $zmiana_hasla->bindParam(':id', $id, PDO::PARAM_INT);
  35. $zmiana_hasla->execute();
  36. echo '<p class="success">Zmieniłeś hasło pomyślnie ! <br />Zaloguj się ponownie.'.header( "refresh:1;url='.$location.'" );'';
  37. }
  38. }
  39. else {
  40. echo '<p class="error">Wpisane aktualne hasło jest błędne.</p>';
  41. }
  42. }
  43. catch (PDOException $e) {
  44. echo 'Oops ! Cos poszło nie tak !<br>'.$e->getMessage();
  45. die();
  46. }
  47. //mysql_query("UPDATE `users` SET `pass` = '$pass' WHERE `id` = '$id'") or die ('<p class="error">Wystąpił błąd w zapytaniu i nie udało się zarejestrować użytkownika.</p>');
  48. //echo '<p class="success">Zmieniłeś hasło pomyślnie !';
  49. }
  50. }


od razu mówię, że w kodzie jest pewnie troche błędów ale .. ucze się dopiero biggrin.gif

Ten post edytował MrGohut 16.11.2013, 15:52:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 02:18