利用session防止用户未经登录而直接访问

在编写项目的时候,突然想如果按常理出牌,不首先进入登录界面而直接访问网页内容,可不可以呢?如此一来便尝试了一下,整的可以直接进入管理员页面,获取完全的管理权限。于是在网上查看了一下解决方案,学习了一下。

那么如何识别用户是否合法呢?就需要每次点开新的页面之前检查一下,但是如果每点开一个页面就需要登陆一回未免太不人性化了,这里就可以使用session来保存用户信息了。

首先编写一个函数,因为可能有许多页面需要检查,如果每次都重新写代码难免造成代码冗余。

//把验证用户的合法性封装到函数
function checkUserLogin(){
       //防止用户没有登录而直接进入后台管理页面
        if (empty($_SESSION['loginuser'])){
        header("Location:login.php?errno=1");
          }
}

在登录检查页面的代码中就保存一下用户的信息(可能是用户ID/用户名/。。。可以识别用户存在的即可)

$_SESSION['loginuser']=$username;

如此,一个简单的验证功能就完成了

原文地址:https://www.cnblogs.com/imysql/p/5294506.html