php echo javascript alert()无效

时间:2015-04-23 06:30:51

标签: javascript php

我想在用户注销时显示弹出消息,因此我使用

echo "<script>alert(\"You are logged out\");</script>";

但它没有用。

以下是我的编码。我的编码有什么逻辑问题吗?

<?php
session_start();
if(isset($_SESSION['Username']) == "admin")
{
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
@import "../CSS/Style.css";
@import "../CSS/Admin.css";
</style>
<title>Admin Home Page</title>
</head>

<body>
<div class="body"></div>
<?php
    if(isset($_GET['id']) == "logout")
    {
        session_destroy();
        echo "<script>alert(\"You are logged out\");</script>";
        header("Location: ..\Main.php");
    }
    else
    {
?>
<div class="menu">
    <a href="ManageStaff.php">Manage Staff</a>
</div>

<div class="menu2">
    <a href="ManageAccount.php">Manage Account</a>
</div>

<div class="logout">
    <a href="AdminHomePage.php?id=logout">Logout</a>
</div>
<?php
    }
}
else
{
?>
<center>
<p style="font-size:50px; font-weight:bold">Access Denied</p>
<p style="font-size:18px">Your request for this page has been denied because of access control</p>
</center>
<?php
}
?>
</body>
</html>

会话将被销毁,并且还会重定向到Main.php,只有alert()不会出来。

4 个答案:

答案 0 :(得分:7)

你正在做一个echo,然后写一个relocate头。如果您在javascript中进行了重新定位(在用户点击警报之后),它可能会按您期望的方式工作。

function delayNext() {
    $("#opacitySlider div.fadeBuy:eq(" + index + ")").on('hover',function() {
       clearTimeout(t1);
    });
        t1 = setTimeout(function() {
            $("#opacitySlider div.fadeBuy:eq(" + index + ")").addClass("rollFaDe").siblings().removeClass("rollFaDe");
            index++;
            if (index === length)
                index = 0;
            delayNext();
        }, 7000);
    }    

    function delayNext2() {
     $(".rounder div.rouLine:eq(" + index2 + ")").addClass("DrawLineCir").on('hover',function() {
       clearTimeout(t2);
    });
       t2 = setTimeout(function() {
            $(".rounder div.rouLine:eq(" + index2 + ")").addClass("DrawLineCir").siblings().removeClass("DrawLineCir");
            index2++;
            if (index2 === length2)
                index2 = 0;
            delayNext2();
        }, 7000);
    }
delayNext();

此外,使用echo "<script>alert('You are logged out'); window.location.href='..\Main.php';</script>"; 的方式会导致问题,因为isset返回true或false(它检查是否存在值),而不是返回值。

所以而不是

isset

你需要这样做:

if(isset($_SESSION['Username']) == "admin")

答案 1 :(得分:2)

header("Location: ..\Main.php");告诉浏览器在显示页面之前转到另一个页面...如果您希望用户看到提醒,请尝试以下操作:

session_destroy();
echo "<script>";
echo "alert('You are logged out');";
echo "window.location = '../Main.php';"; // redirect with javascript, after page loads
echo "</script>";

答案 2 :(得分:2)

使用它会解决你的问题!!首先从

更改您的代码
if(isset($_SESSION['Username']) == "admin")
{ 

if(!empty($_SESSION['Username']) && ($_SESSION['Username']=="admin")){

并使用以下代码

 if(!empty($_GET['id']) && ($_GET['id']=="logout"))
        {
          session_destroy();?>
             <script>
             alert("You are logged out");
             window.location.href='..\Main.php';
             </script>
           <?php }?>

答案 3 :(得分:-1)

尝试, 这必须工作, 并删除php标头,替换为以下代码。

question.ques_text