@its_a_me_mario

Почему некорректно работает проверка пароля?

Пытаюсь сделать регистрацию, но при повторном вводе пароля, if срабатывает в любом случае, хоть пароли совпадают, хоть нет:

<?php
require "libs/rb-mysql.php";

$data = $_POST;

if( isset($data['do-signup'])) {
    $errors = array(); //Массив с ошибками

    if( trim($data['login']) == '' ){
        $errors[] = 'Введите логин';
    }

    if( trim($data['email']) == '' ){
        $errors[] = 'Введите емаил';
    }

    if( ($data['password']) == '' ){
        $errors[] = 'Введите пароль';
    }

    if( ($data['password_2']) != ($data['password'])){
        $errors[] = 'Пожалуйста, повторите пароль'; //Вот этот if постоянно работает при любом исходе, хоть пароли совпадают, хоть нет
    }

    if (empty($errors)){
        //регистрация
        $user = R::dispense('users');
        $user->login = $data['login'];
        $user->email = $data['email'];
        $user->password = $data['password'];
        R::store($user);
    }
    else
    {
        echo '<div style="color: red;">'.array_shift($errors).'</div><hr>';
    }

}
?>
<form action="/signup.php" method="POST">
    <p>
        <strong>Ваш логин:</strong>
        <br/>
        <input type="text" name="login" value="<?php echo @$data['login']; ?>">
    </p>

    <p>
        <strong>Ваш емаил:</strong>
        <br/>
        <input type="email" name="email" value="<?php echo @$data['email']; ?>">
    </p>

    <p>
        <strong>Ваш пароль:</strong>
        <br/>
        <input type="password" name="password" value="<?php echo @$data['password']; ?>">
    </p>

    <p>
        <strong>Введите ваш пароль ещё раз:</strong>
        <br/>
        <input type="password" name="password_2 value="<?php echo @$data['password_2']; ?>">
    </p>

    <p>
        <button type="submit" name="do-signup">
            Зарегистрироваться
        </button>
    </p>
</form>
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
У Вас в форме ошибка:
<input type="password" name="password_2 value="<?php echo @$data['password_2']; ?>">

Должно быть:
<input type="password" name="password_2" value="<?php echo @$data['password_2']; ?>">
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы