我想检查用户是否未登录,然后他无法访问患者仪表板页面并重定向到index.php这样正常工作但是当我在患者仪表板页面中添加javascript警报时我重定向用户到index.php如果没有登录,那么它将首先显示警告框然后它将转到索引页面,这不起作用...请帮助...
患者dashboard.php
if(!isset($_SESSION['username'])) {
echo "<script type='text/javascript'>";
echo "alert('Login First');";
echo "</script>";
header('Location: index.php');
}
答案 0 :(得分:0)
您必须在其他任何内容之前发送标头。该脚本阻止标头工作。重定向到信息页而不是使用脚本,并使用元刷新将它们带回索引。
信息页面只是一个普通的HTML页面,上面写着“你必须登录”。你让他们回到索引页面,如下所示:
<meta http-equiv="refresh" content="5;URL=http://www.exmaple.com/index/.html">
“5”是五秒钟。您可以将index.html
放在网址中;我没有测试过。
答案 1 :(得分:0)
if(!isset($_SESSION['username'])) {
echo '<script type="text/javascript">;alert("Login First");window.location = "index.php";</script>';
}
答案 2 :(得分:0)
试试这个,您不需要在不同的回声中使用警报的不同部分,并且标题重定向现在在警报之前。
**编辑**此刷新方式用作重定向并提供警报
<?php
$var1 = 1;
$var2 = 2;
if($var1 < $var2) {
header( "Refresh:1; url=index.php");
echo "<script type='text/javascript'>alert('Login First')</script>";
}else{
echo "<script type='text/javascript'>alert('Logged In')</script>";
}
?>
答案 3 :(得分:0)
尝试
// patient-dashboard.php
if (!isset($_SESSION['username'])) {
$_SESSION['login_failed'] = 1;
header('Location: ./index.php');
exit; // eliminate errors and prevent the user from going any further
}
// index.php
if (isset($_SESSION['login_failed'])) {
unset($_SESSION['login_failed'];
die("Login First");
}
或者
// patient-dashboard.php
if (!isset($_SESSION['username'])) {
die("<script type='text/javascript'>alert('Login First'); location.href = './index.php';</script>");
}