Javascript没有被执行


Javascript not being executed

这是我的php文件的顶部-我想要实现的是,如果用户在失败的登录尝试后结束在这个页面上张贴在这里-一个消息应该在javascript中显示概述这种失败的登录尝试,然后重定向他们回到上一页。

为什么会发生这种情况,可以做些什么来修复它,以便显示消息框?或者在前一页-我如何停止重定向,如果登录尝试失败?

感谢
<?php
include("Application.php");
include("Member.php");
include("ContactDetails.php");
include("LoginDetails.php");
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
$value = null;
if(isset($_SESSION['url'])) {
    $value = $_SESSION['url'];
    $_SESSION['url'] = $_SERVER['REQUEST_URI'];
}
if(isset($_POST['submit'])){
    $username=$_POST["username"];
    $password=$_POST["password"];
    $loginDetails = logUserIn($username, $password);
    if($loginDetails != null && $loginDetails->getUserid() > 0){
        $contactDetails = getContactDetails($loginDetails->getUserid());
        $member = new Member($contactDetails, $loginDetails);
        //an array of applications belong to a paticular user
        $applications = getApplicationsForMember($member);
        printUserApplicationSelectionForm($applications);
    }else{
        //login attempt failed - tell the user and redirect
        if($value != null){
            $path = "http://localhost" . "$value";
            header("Location: $path");
            echo '<script type="text/javascript">alert("Login Attempt Failed!");</script>'; 
        }
    }
}

在回显之前更改位置,因此警报脚本永远不会回显:

        header("Location: $path");
        echo '<script type="text/javascript">alert("Login Attempt Failed!");

把它们调换一下就可以了。

如果您发送位置标头,浏览器将不再从当前页面加载响应(您的脚本),而是直接更改到新的位置。您可以做的是在发送Location标头之前将&message=failedlogin之类的东西添加到路径中,然后在上一页中显示消息。您也可以将它存储在会话:
$_SESSION['loginsuccess']=false;中,然后在前一个PHP页面中检查该值。