建立新网站时PHP原生Alert与SweetAlert两者皆没有反应

以下提供source code寻求解答
1, 以PDO连接->database;
2, 用regular expression;
3, 再用SESSION验证是否各自相等;
4, 利用database验证email是否注册;
5, 利用PHP原生通知与SWAL通知;

在此感谢各位解答!


<?php

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $username = trim($_POST['username']);
    if (!preg_match("/^[\w\-]+\.+[\w\-]+$/", $username)) {
        $Error = "Please enter a valid Username";
    }

    $email = $_POST['email'];
    if (!preg_match("/^[\w\-]+@[\w\-]+.[\w\-]+$/", $email)) {
        $Error = "Please enter a valid email";
    }

    $password = esc($username);
    $password = esc($_POST['password']);

    $date = date("Y-m-d H:i:s");
    $url_address = generateRandomString(60);

    //    $query = "insert into users (url_address, username, password, email, date)     values ('$url_address', '$username', '$password', '$email', '$date')";
    
    //check if email exist
    $quarr = false;
    $quarr['email'] = $email;

    $query = "SELECT * FROM USERS    
            WHERE email = :email LIMIT 1";
            
    $stmt = $dbconn->prepare($query);
    $stmt -> bindParam(':email', $quarr['email']);
    $check = $stmt -> execute();

    if ($check) {
        $data = $stmt->fetchAll(PDO::FETCH_OBJ);
        if (is_array($data) && count($data) > 0) {
            $Error = "<script>alert('Email has been already used!')</script>";
        }
    }
    if ($Error == "") {
        $arr['url_address'] = $url_address;
        $arr['date'] = $date;
        $arr['username'] = $username;
        $arr['password'] = $password;
        $arr['email'] = $email;

        $query = "insert into users (url_address, username, password, email, date) 
                values (:url_address, :username, :password, :email, :date)";
        $stmt = $dbconn->prepare($query);
        $stmt -> execute($arr);
        echo '
                <script>
                swal({
                    title: "All Done!",
                    text: "Your profile has been created!",
                    type: "success"
                }).then(function(){
                    window.location = "login.php";
                </script>';
    }
}
?>

你上面这个 if ($Error == "") { 只有这个条件,那么如果$Error 不为空,那你这个程序不是没有任何输出么?

应该加一个

else{

    echo $Error;
}

已解決
1, swal版本問題, 在swal2中必須使用.fire效果

2, 部分 tag/script 缺少 ";" 等

$Error = "<script>alert('Email has been already used!')</script>";

/* FIXED */
$Error = "<script>alert('Email has been already used!');</script>";
}).then(function(){
  window.location = "login.php";
</script>';

/* FIXED */
}).then(function(){
  window.location = "login.php";
});
</script>';

真的太煩了