我想在用户注销时显示弹出消息,因此我使用
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()
不会出来。
答案 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