登录,获取名称和注销错误

时间:2014-11-06 05:06:33

标签: php

我想知道这是否真的很安全。但是有一个错误,例如注销。在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。所以这不会有问题。

3 个答案:

答案 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']);