Próbowałem samemu ale mi to nie wychodzi ;/
if ($_POST['send'] == 1) { $pass_aktualne = $_POST['pass_aktualne']; $pass = $_POST['pass']; $pass_v = $_POST['pass_v']; $errors = ''; // Zmienna przechowująca listę błędów które wystąpiły if (!$pass_aktualne) $errors .= '- Musisz podać swoje stare hasło jeżeli chcesz je zmienić<br />'; if (!$pass || !$pass_v ) $errors .= '- Musisz podać nowe hasło i wpisać je ponownie w następne pole<br />'; if ($pass != $pass_v) $errors .= '- Hasła się nie zgadzają<br />'; if ($errors != '') { echo '<p class="error">Zmiana danych nie powiodła się, popraw następujące błędy:<br />'.$errors.'</p>'; } else { //$pass = user::passSalter($pass); //$pass = hash("sha256", $pass); try { $pass_aktualne = hash("sha256", $pass_aktualne); $pass_porownaj = $db->prepare("SELECT COUNT(*) FROM users WHERE pass=:pass"); $pass_porownaj->bindValue(':pass', $pass_aktualne, PDO::PARAM_STR); $pass_porownaj->execute(); if($pass_porownaj) { if($pass_porownaj==$pass_aktualne) { $pass = hash("sha256", $pass); $zmiana_hasla = $db->prepare("UPDATE `users` SET `pass` = :pass WHERE `id` = :id"); $zmiana_hasla->bindParam(':pass', $pass, PDO::PARAM_STR); $zmiana_hasla->bindParam(':id', $id, PDO::PARAM_INT); $zmiana_hasla->execute(); } } else { } } catch (PDOException $e) { } //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>'); //echo '<p class="success">Zmieniłeś hasło pomyślnie !'; } }
od razu mówię, że w kodzie jest pewnie troche błędów ale .. ucze się dopiero
