簡體   English   中英

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頁面中檢查該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM