重定向到索引页但不处理javascript警报

时间:2014-09-12 13:53:46

标签: javascript php

我想检查用户是否未登录,然后他无法访问患者仪表板页面并重定向到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');

    }

4 个答案:

答案 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>");
}