0

祝大家好日子,

我正在使用 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.";
}

任何帮助将非常感激。谢谢

4

2 回答 2

1

以防万一您或其他人仍在寻找答案:由于您将重定向通过 ajax 请求的内容而不是实际页面,因此您无法使用 php 标头函数来执行此操作。相反,如果可以完成登录,则在您的 login-process.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();
            }
        }
    });
});
于 2014-06-21T23:44:43.513 回答
0

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.";
}
于 2013-09-14T08:32:06.240 回答