Witam, Mam mały problem ze skryptem zmiany hasła, a mianowicie skrypt teoretycznie działa poprawnie wyświetla się komunikat że hasło zostało pomyślnie zmienione ale tak nie jest, hasło jest takie jak było. Gdzie tutaj może być bląd?
<?php
session_start();
if (!isset($_SESSION['logged']))
{
header('Location: index.php');
exit();
}
require_once('db_connect.php');
$pdo = new PDO('mysql:host='.$host.';dbname='.$db_name, $db_user, $db_password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['send'])){
$password = trim($_POST['password']);
$password = sha1($password);
$new_password = trim($_POST['new_password']);
$new_password = sha1($new_password);
$new_password_2 = trim($_POST['new_password_2']);
$new_password_2 = sha1($new_password_2);
$id = $_SESSION['user_id'];
$errors = NULL;
$check_password = $pdo->prepare("SELECT * FROM users WHERE id=:id AND password=:password");
$check_password->bindValue(":id", $id, PDO::PARAM_STR);
$check_password->bindValue(":password", $password, PDO::PARAM_STR);
$check_password->execute();
$row=$check_password->fetch(PDO::FETCH_ASSOC);
$password_db = $row['password'];
if($password !== $password_db) $errors .= "Nieprawidłowe aktualne hasło </br>";
if($password == $new_password) $errors .= "Nowe hasło nie może być takie jak poprzednie </br>";
if(strlen($new_password)<6) $errors .= "Nowe hasło musi zawierać minimum sześć znaków </br>";
if($new_password !== $new_password_2) $errors .= "Nowe hasła muszą być takie same </br>";
if(empty($errors)){
$password_change = $pdo->prepare("UPDATE users SET password=:password WHERE id=:id");
$password_change->bindValue(":password", $new_password, PDO::PARAM_STR);
$password_change->bindValue(":id", $id, PDO::PARAM_INT);
$result = $check_password->execute();
if($result !== false)
{
echo 'Hasło zostało pomyślnie zmienione';
header("Refresh: 5; URL=indexx.php");
}
else{
echo 'Wystąpił błąd';
header("Refresh 5; URL=indexx.php");
}
}
else{
echo '<div style="color:red">'.$errors.'</div>';
}
}
else header('Location: index.php');
?>