Jquery 模式对话框作为登录,然后重定向页面


Jquery modal dialog box as login then redirect page

祝大家美好的一天,

我正在使用PHP和jquery模式对话框登录我的页面,然后我想重定向到另一个页面。但是一旦我重定向到另一个页面,它就会显示在我的模态框中。但是后来我尝试关闭模式,但我无法重定向到另一个页面。我想使用 php header() 重定向页面。您知道如何以正确的方式执行此操作吗?这就是我使用登录页面的方式。

$("form#formAction").on("submit", function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "login-process.php",
        data: $(this).serialize(),
        success: function (data) {
            $("input#username").val("");
            $("input#password").val("");
            $("input#username").focus();
        }
    });
});

登录.php

$data = array (
        'username' => $_POST["username"],
        'password' => $_POST["password"]
        );
$sql = "SELECT id, role FROM user WHERE username=:username AND password=:password";
$STH = $DBH->prepare($sql);
$STH->execute($data);
$data = $STH->fetchAll(PDO::FETCH_ASSOC);
$role = $data[0]['role'];
$count = $STH->rowCount();
if ($count > 0) {
    session_start();
    $_SESSION['login'] = 'YES';
    if ($role == 'admin') {
        $_SESSION['role'] = 'admin';
    } else {
        $_SESSION['role'] = 'customer';
    }
    echo 'success';
} else {
    echo "Please check your username or password again.";
}

任何帮助将不胜感激。谢谢

以防万一您或其他人仍在寻找答案:您无法使用 php 标头函数执行此操作,因为您将重定向通过 ajax 请求的内容而不是实际页面。相反,在您的登录过程中.php如果可以完成登录,则文件返回 1,只需使用 javascript 函数location.reload();重新加载页面或window.location.href="index.html"重定向。所以你的Javascript是这样的:

$("form#formAction").on("submit", function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "login-process.php",
        data: $(this).serialize(),
        success: function (data) {
            if(data == 1) {
                // If logged-in, reload the page or do something else
                location.reload();
            } else {
                $("input#username").val("");
                $("input#password").val("");
                $("input#username").focus();
            }
        }
    });
});

header('Location:....')应该可以工作

if ($count > 0) {
    session_start();
    $_SESSION['login'] = 'YES';
    if ($role == 'admin') {
        $_SESSION['role'] = 'admin';
    } else {
        $_SESSION['role'] = 'customer';
    }
    header('Location: redirectpage.php');
} else {
    echo "Please check your username or password again.";
}