@Helping

Как доделать форму смены пароля?

Здравствуйте! Не хочет работать форма, что я делаю не так?
$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>
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
1. что выводит
2. есть ли ошибки и вообще включен ли вывод ошибок в php.ini
3. дебажте постепенно, для начала что у Вас в
$user = R::findOne('users', 'login = ?', array($_SESSION['logged_user']->login));

сделайте
var_dump($user);
ибо что в объекте R и что за изверг так называет объекты, нам неизвестно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽