php中怎么用session来控制页面的访问权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中怎么用session来控制页面的访问权限?相关的知识,希望对你有一定的参考价值。

我在登陆页面里将登陆时的用户名、密码都存到session里,然后可以再其他页面中进行判断session值是否为空,来进行页面访问权限控制。总之就是只能通过登录页面进入到系统所有其他的页面!!!

参考技术A if($_SESSION['user']) if($_SESSION['user'][''login]) echo '已登陆!'; else echo '未登录!'; else echo '未登录!'; $_SESSION['user']['username']='用户名';$_SESSION['user']['password']='用户名';$_SESSION['user']['login']=TRUE;用户登陆后 $_SESSION['user']['login']=TRUE;用户注销后 $_SESSION['user']['login']=FALSE; 参考技术B 你的思路不是很对吗?为了 方便 你可以专门弄个页面 ,专门来判断是否登陆,,然后如果为空,那就跳转到登陆页面 就行了 参考技术C //如果session为空的话,aa是阁下的session名if(!$_SESSION[‘aa‘])
echo ‘您还没有登陆‘;

PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证

权限验证

1、登录控制器

2、通过tp验证码类生成验证码图片

 

3、在管理员模型增加登录验证规则

4、后台中所有的控制器必须先登录才能访问

思路:在访问任何一个控制器之前都判断一个session即可,=>增加一个父控制器验证Session

  

    让所有后台的控制器【除了Login控制器之外的】都继承自这个控制器

5、在管理员访问后台的任何一个页面之前先到数据库中查看当前管理员所在的角色是否有权限访问这个页面

  在权限模型中增加此检查方法,在父类登录控制器中调用

  

6、后台左侧只显示当前管理员有权限访问的按钮

思路:取出当前管理员所拥有的前两级的权限,在左侧循环这些权限做为按钮!

在权限模型中增加获取当前管理员权限的方法

/******** 获取当前管理员所拥有的前两级的权限 ***********/
    public function getBtns()
    {
        // 先取出当前管理员所拥有的所有的权限
        $adminId = session(\'id\');
        if($adminId == 1)
        {
            $priModel = M(\'privilege\');
            $priData = $priModel->select();
        }
        else
        {
            // 取出当前管理员所在角色所拥有的权限
            $arModel = M(\'admin_role\');
            $priData = $arModel->alias(\'a\')
            ->field(\'DISTINCT c.id, c.pri_name,c.module_name,c.controller_name,c.action_name,c.parent_id\')
            ->join (\'LEFT JOIN __ROLE_PRI__ b ON a.role_id=b.role_id
                    LEFT JOIN __PRIVILEGE__ c ON b.pri_id=c.id\')
            ->where(array(
                    \'a.admin_id\' => array(\'eq\', $adminId),    
            ))->select();
        }
        /*************** 从所有的中选出前两级 *******************/
        $btns = array();        //前两级权限
        foreach ($priData as $k => $v)
        {
            if($v[\'parent_id\'] == 0)
            {
                //再找这个顶的子级
                foreach ($priData as $k1 => $v1)
                {
                    if($v1[\'parent_id\'] == $v[\'id\'])
                    {
                        $v[\'children\'][] = $v1;
                    }
                }
                $btns[] = $v;
            }
        }
        return $btns;
    }

 在menu.html中使用四维函数输出

 

7、在管理员模型增加一个退出账号功能 => 删除session

 

 

 

以上是关于php中怎么用session来控制页面的访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA WEB 中登录的session的判断 如何控制用户权限可以访问那些东西

如何设置web页面访问权限?只允许登录用户访问login.php,其他页面未通过验证均跳转到登录界面

PHP使用session控制同一个账户单设备登陆

PHP.48-TP框架商城应用实例-后台23-权限管理-权限验证

Java项目怎么控制权限啊?

C# 页面跳转Session丢失