Безопасен ли такой скрипт регистрации?

195
05 июля 2018, 20:00

Написал я недавно такой скрипт регистрации. И хотел бы спросить, безопасен ли он?

<?php 
$data = $_POST;
if (isset($data['do_signup'])) 
{
    $error = [];
    if (trim($data['name']) == '') 
    {
        $error[] = 'Введите имя';
    }
    if (trim($data['login']) == '') 
    {
        $error[] = 'Введите логин';
    }
    if ($data['password'] == '') 
    {
        $error[] = 'Введите пароль';
    }
    if ($data['password1'] == '') 
    {
        $error[] = 'Введите подтверждающий пароль';
    }
    if ($data['password'] != $data['password1']) 
    {
        $error[] = 'Пароли не совпадают';
    }
    if (R::count("users", "login = ?", array($data['login'])) > 0) 
    {
        $error[] = 'Пользователь с таким логином существует';
    }
    if (empty($error)) 
    {
        $user = R::getRedBean()->dispense( 'users' );
        $user->name = $data['name'];
        $user->login = $data['login'];
        $user->password = password_hash($data['password'], PASSWORD_DEFAULT);
        $user->date = date("r");
        R::store($user);
        $result_reg = '<div style="color: green;">' . 'Вы успешно зарегистрировались.' . '</div>';
    } else {
        $result_reg = '<div style="color: red;">' . array_shift($error) . '</div>';
    }
}
?>
<div class="section">
    <p><?php echo $result_reg; ?></p>
    <form action="index.php?page=reg" method="POST">
        <input type="text" name="name" placeholder="Имя" pattern="^[а-яА-ЯеЁa-zA-Z]+$" value="<?php echo @$data['name'] ?>">
        <input type="text" name="login" placeholder="Логин" value="<?php echo @$data['login'] ?>">
        <input type="password" name="password" placeholder="Пароль" value="<?php echo @$data['password'] ?>">
        <input type="password" name="password1"  placeholder="Подтвердите пароль" value="<?php echo @$data['password1'] ?>">
        <button type="submit" name="do_signup">Зарегистрироваться</button>
    </form>
</div>
READ ALSO
Вывести значения таксономии

Вывести значения таксономии

Подскажите, пожалуйста, что применить?

174
Помогите исправить Warning: Illegal string offset &#39;TEXT&#39;

Помогите исправить Warning: Illegal string offset 'TEXT'

помогите разобраться, пожалуйста, на страницах почти везде данное сообщениеWarning: Illegal string offset 'TEXT' in "/bitrix/

203
Как изменить label в input при выборе radio в предыдущем form-group

Как изменить label в input при выборе radio в предыдущем form-group

Это часть чекаута в опенкарте Нужно при выборе групы покупателя изменить название следующего поля для ввода данных Чистый CSS почему то не работает...

136