祝大家美好的一天,
我正在使用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.";
}