我希望在用户注销时显示弹出消息,所以我使用
echo "<script>alert(\"You are logged out\");</script>";
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
以下是我的编码.我的编码有什么逻辑问题吗?
<?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>
Run Code Online (Sandbox Code Playgroud)
会话将被销毁,并将重定向到Main.php,只是alert()不会出来.
你正在做一个echo,然后写一个relocate头.如果你在javascript中重新定位(在用户点击警报之后),它可能会按照你期望的方式工作.
echo "<script>alert('You are logged out'); window.location.href='..\Main.php';</script>";
Run Code Online (Sandbox Code Playgroud)
此外,您使用的方式isset将导致问题,因为isset返回true或false(它检查是否存在值),而不是返回值.
而不是
if(isset($_SESSION['Username']) == "admin")
Run Code Online (Sandbox Code Playgroud)
你需要这样做:
if(isset($_SESSION['Username']) && $_SESSION['Username'] == "admin")
Run Code Online (Sandbox Code Playgroud)