我想知道这是否真的很安全。但是有一个错误,例如注销。在isset之后我的名字仍在那里。
这里是登录,它是成功的。 - >的login.php
session_start();
if($loginRow === 1) {
$_SESSION['login'] = true;
$_SESSION['username'] = $username;
header ("Location: index");
} else {
echo "Invalid Login Information";
}
还要获取用户名。它运作良好。 - >的index.php
session_start();
if($_SESSION['login'] = "1") {
echo $_SESSION['username'];
echo "<a href=\"logout\"> Logout </a>";
} else {
echo "<a href=\"register\"> Register </a>";
}
和退出 - &gt; logout.php
session_start();
unset($_SESSION['login']);
$_SESSION['login'] = 0;
header ("Location: index");
为什么我退出后,我的名字仍然存在?我以为它已经被摧毁了?还可以检查是否有办法使其更安全?指导我,谢谢!
我知道我没有放扩展名,因为我使用的是htaccess。所以这不会有问题。
答案 0 :(得分:0)
你这里有一个错误:
if($_SESSION['login'] = "1")
它应该是if($_SESSION['login'] === TRUE)
single =只是将其设置为1,它将始终返回true
答案 1 :(得分:0)
应为if($_SESSION['login'] == 1)
或if($_SESSION['login'] == true)
或if($_SESSION['login'])
答案 2 :(得分:0)
首先,您在此行if($_SESSION['login'] = "1") {
//if($_SESSION['login'] == "1") {
并取消设置$_SESSION['username']
logout.php 添加此
unset($_SESSION['username']);