$data = $_POST;
if (isset($data['change'])) {
$errors = array();
$user = R::findOne('users', 'login = ?', array($_SESSION['logged_user']->login));
if( $user ){
if( $data['password'] == '' )
{
$errors[] = 'Введите пароль!';
}
if( $data['new_password'] == '' )
{
$errors[] = 'Введите новый пароль!';
}
if( $data['conf_password'] == '' )
{
$errors[] = 'Повторите пароль!';
}
if( $data['new_password'] != $data['conf_password'] )
{
$errors[] = 'Пароли не совпадают!';
}
if( password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password))
{
if( empty($errors) )
{
$user->password = password_hash($data['new_password'], PASSWORD_DEFAULT);
R::store($user);
echo '<div class="success"><p>Пароль изменён!</p></div>';
}
else
{
echo '<div class="errors">'.array_shift($errors).'</div>';
}
}
else
{
$errors[] = 'Неверный пароль!';
}
}
}
?>
<section class="section-catalog">
<div class="profile-content">
<div class="section-content">
<form action="change_password.php" method="POST" class="profile-password">
<p>
<p><strong>Текущий пароль</strong>:</p>
<input type="password" name="old_password" value="">
</p>
<p>
<p><strong>Новый пароль</strong>:</p>
<input type="password" name="new_password" value="">
</p>
<p>
<p><strong>Повторите пароль</strong>:</p>
<input type="password" name="conf_password" value="">
</p>
<p>
<button type="submit" name="change">Изменить</button>
</p>
</form>
</div>
</div>
$user = R::findOne('users', 'login = ?', array($_SESSION['logged_user']->login));
var_dump($user);
if( password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password))
это RedBeanPHP
Возможно проблема не в этом. Когда я ввожу в поле текущ. пароля и нажимаю "изменить", высвечивается форма гугла с обновлением пароля у другого пользователя:
if( password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password))
var_dump($user->password);
var_dump($data['password']);
var_dump($password_hash($data['password'], PASSWORD_DEFAULT));
var_dump(password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password));
var_dump($user->password)
var_dump($data['password'])
var_dump($password_hash($data['password'], PASSWORD_DEFAULT))
var_dump(password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password));
$errors[] = 'Неверный пароль!';
<input type="password">
<input type="text">
Это окно перестало выводится, просто после отправки формы страница обновляется и ничего не меняется if( password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password))
а почему оно не отрабатывает или как сделать чтоб срабатывало?
var_dump(password_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password));
$data['password']
равен nullpassword_verify(password_hash($data['password'], PASSWORD_DEFAULT), $user->password));
( password_verify($data['old_password'], $user->password))