♂WhiteWin♂

导航

【辅导】Task13 使用会话管理 主要知识点(2)

动态网站设计都需要用到会话管理(主要是Session)。本节主要介绍Session和Cookie在网站登录时的使用,主要是掌握如何在网站中使用Session来鉴别登录的用户。

1、网站登录过程

主要就是登录成功时,要记录一个Session

 

 

注意,课件中提供的can_login()函数仅是一个演示,实际情况是要根据用户名和加密后的密码,到数据库中查询。

2、功能页面也要认证用户

所有要鉴别用户身份的页面,都需要判断是否存在这个Session 

 

实际使用中,读取Session后,还要访问数据库,判断该用户具有哪些权限,决定显示哪些内容。如判断是普通用户,还是网站管理员。

3、清除Session

网站提出“退出”功能,在退出时,要清除用户的Session。

用unset语句删除掉用户有关的Session,对大部分网站就够了。

如果想退出时再安全一点,可以采取以下几个步骤:

 

参考:php中session原理及安全性问题:

https://www.cnblogs.com/lyFocus/p/6109157.html

4、使用cookie记住用户名

(1)使用复选框,判断用户是否要记住用户名

 

因为只一个复选项,所以判断有没有$_POST["remember"]变量就可以了。

$remembered = isset($_POST["remember"]);

如果有多个复选项,html input控件的name属性要用"remember[]",那么用$_POST["remember"]变量获得的是一个包括各复选项内容的数组(如果任何一个都没选中,这个变量也为空)。见Task 10.2。

(2)访问登录页面时,有记住用户名的Cookie要取出来

//读取cookie并将用户名赋值给$name,之后显示在name文本框

if (!empty($_COOKIE["login_name"])){

    $name = $_COOKIE["login_name"];

}

 

(3)用户登录成功时,使用Cookie记住用户名

    if (can_login($name, $pwd)){

        //将认证过的用户名保存到cookie

        if ($remembered){

            setcookie("login_name",$name,time()+14*24*60*60);

        }

        //name保存到Session

}

注意:这段代码因为要写入Cookie,所以必须要放在<html>标记之前。

5、关于课后练习

参照课堂示例,创建登录页面,并对具体功能页面(如文件上传)进行登录认证。

posted on 2020-04-16 10:58  银翼  阅读(169)  评论(0)    收藏  举报