gpt4 book ai didi

php - 如何从我的网站中删除 PHP 中的登录 session ?

转载 作者:行者123 更新时间:2023-12-03 19:08:07 24 4
gpt4 key购买 nike

我目前正在一个副项目网站上工作,并尝试在 PHP 中创建基本的登录 session 。我编写的代码应该在您注销后销毁 session ,如果没有 session ,则将您重定向到登录屏幕。

登录表单(index2.html.php)

<?php
if(isset($_SESSION['user']))
{
header("Location: https://website.com/mike-test/main.html.php");
}
?>
<html lang="en-UK">
<head>
<!- HEAD ------------------------------------------------------------------>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/button.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/profile.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/menu.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/section.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/footer.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/subMenu.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/logIn.css" rel="stylesheet" type="text/css" media="all" />
<script src="javaScript/logIn.js"></script>
<!- To Be Changed! ->
<link rel="icon" href="_Images/Logo.ico">
<meta name="Pharmacy Project Log In" content="Pharmacy System">
<title>Pharmacy Project</title>
</head>
<!- HEAD ------------------------------------------------------->
<body>
<!- BODY ------------------------------------------------------------------>
<div id="content">
<section> <!--Main Content here-->
<img src="logo.png" id="logo" height="150" width="150">
<form action="connection3.php" method="POST">
<input type="text" name="username" placeholder="Username" required /><br />
<input type="password" name="password" placeholder="Password" required /><br />
<input type="checkbox" name="RememberMe" /><label>Remember Me</label><br />
<button><input type="submit" name="submit" class="button" /></button><br />
</form>
</section>
</div>
<footer> <!--Just a footer-->
<p>Website made by:<br /><br />

<script>document.write(document.title)</script> 2019-
<script>document.write(new Date().getFullYear())</script>. @ rights reserved</p>
</footer>
</body>
</html>

连接到数据库 - 创建 session (connection3.php)
session_start();

if(isset($_SESSION['user']))
{
header("Location: https://website.com/mike-test/main.html.php");
}

if (!empty($_POST))
{
if (isset($_POST['username']) && isset($_POST['password']))
{
// Getting submitted user data from database
$username = $_POST['username'];
$password = $_POST['password'];
$con = mysqli_connect("localhost", "pharmacy", "pharmacy", "pharmacy123");
if(mysqli_connect_error())
{
die('Connect Error(' . mysqli_connect_errno() . ')' . mysqli_connect_error());
} else
{
$result = mysqli_query($con, "SELECT username, Password FROM Employee WHERE username = '" . $username . "' AND Password = '" . $password . "'");

if(mysqli_num_rows($result) > 0)
{
$_SESSION['user'] = $username;
header('Location: https://website.com/mike-test/main.html.php');
} else
{
echo "user doesn't exist";
}
}
} else
{
echo "Both fields are required";
}
}
?>

首页(main.html.php)
<html lang="en-UK">
<?php
session_start();
echo $_SESSION['user'];
if ( isset( $_SESSION['user'] ) )
{} else {
// Redirect them to the login page
header("Location: https://website.com/mike-test/index2.html.php");
}
?>
<head>
<!- HEAD ------------------------------------------------------------------>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/button.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/profile.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/menu.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/section.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/footer.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/subMenu.css" rel="stylesheet" type="text/css" media="all" />
<script src="javaScript/logIn.js"></script>
<!- To Be Changed! ->
<link rel="icon" href="_Images/Logo.ico">
<meta name="" content="Pharmacy System">
<title>Project</title>

</head>
<!- HEAD ------------------------------------------------------->
<body>
<!- BODY ------------------------------------------------------------------>
<img src="logo.png" id="logo" height="100" width="100">
<div id="profile">
<div id="text">
<p id="Name">Name</p>
<p id="status">Status</p>
</div>
<div id="image">
<img src="logo.png">
</div>
<div id="menu">
<a href="" target="_self"><button>Settings</button></a><br />
<form action="close.php" method="POST">
<button type="submit" id="logout" value="logout">LogOut</button>
</form>
</div>
</div><!-- Profile Button -->
<nav>
<ul id="mainMenu">
<li><button type="button">Counter Sales</button></li>
<li><button type="button">Dispense Drugs</button></li>
<li><button type="button">Stock Control</button></li>
<li><button type="button">Supplier Accounts</button></li>
<li><button type="button">File Maintenance</button></li>
<li><button type="button">Reports</button></li>
</ul><!--Main Menu Bar-->
</nav>
<div id="content">
<section> <!--Main Content here-->
<h1>Main Menu</h1>
<p></p>
<div class="grid">
<ul id="subMenu">
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
<li><button type="button">SubMenu1</button></li>
</ul><!--Main Menu Bar-->
<div style="background: blue;">
<p style="color: white;">Database here</p>
<!--This is where database-->
</div><div></div>
<div id="actions">
<button type="button">SubMenu1</button>
<button type="button">SubMenu1</button>
<button type="button">SubMenu1</button>
<button type="button">SubMenu1</button>
<button type="button">SubMenu1</button>
</div>
</div>
</section>
</div>
<footer> <!--Just a footer-->
<p>Website made by:<br /><br />

<script>document.write(document.title)</script> 2019-
<script>document.write(new Date().getFullYear())</script>. @ rights reserved</p>
</footer>
</body>
</html>

close.php
unset($_SESSION['user']);
//session_destroy();
echo $_SESSION['user'];
echo "session should be terminated";
//header('Location: https://webiste.com/mike-test/index2.html.php');
?>

我已经尝试通过回显 $_SESSION['user'] 在 close.php 和 main.html.php 中进行故障排除.注销时, session 不会回显,因为它被破坏或未设置。在尝试通过 url 链接手动访问 main.html.php 时, $_SESSION['user']仍然存在。我向很多人和讲师寻求帮助,他们都认为代码没有问题,都傻眼了。

有没有什么办法解决这一问题?

最佳答案

您需要在取消设置之前恢复 session

我在下面发布了来自 session_start 的报价在 PHP.Net 上:

session_start() creates a session or resumes the current one based on a session identifier passed via a GET or POST request, or passed via a cookie.



在您的 close.php 中,您试图在没有首先恢复站点上的 session 的情况下取消设置 session ,您首先需要调用 session_start()然后取消设置。
<?php
session_start();
unset($_SESSION['user']);
echo $_SESSION['user'];
echo "session should be terminated";
?>

关于php - 如何从我的网站中删除 PHP 中的登录 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60099951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com