<?php
if(!empty($_POST['reg'])){
    if(preg_match('/^[a-zA-Z0-9]{6,}$/',$_POST['login'])){
        $sql = 'SELECT login FROM `users` WHERE 
        login = :login';
        $sth = $dbh->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
        $sth->execute([
            "login" => $_POST['login']
        ]);
        $red = $sth->fetch();

        if($red){
            $error = "Логин уже занят!";
        }
        else{
           if(preg_match('/^.{8,}$/', $_POST['password_hash'])){
                 $sql = 'INSERT INTO `users`(`fullname`, `birthdate`,
            `phone`, `email`, `login`,
            `password_hash`) VALUES (:fullname,
            :birthdate, :phone, :email, :login, :password_hash)';
            $sth = $dbh->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
            $sth->execute([
                "fullname"=>$_POST['fullname'],
                "birthdate"=>$_POST['birthdate'],
                "phone"=>$_POST['phone'],
                "email"=>$_POST['email'],
                "login"=>$_POST['login'],
                "password_hash"=> password_hash($_POST['password_hash'], PASSWORD_DEFAULT)
            ]);
            header('Location: login.php');
           }
           else{
                $error = "Пароль должен содержать не меньше восьми символов";
           }
        }
    }
    else{
        $error = "Логин должен содержать латинские буквы и цифры длиной минимум шесть символов";
    }
}
?>