惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
I
InfoQ
月光博客
月光博客
量子位
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
G
Google Developers Blog
D
DataBreaches.Net
宝玉的分享
宝玉的分享
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理

博客园 - 银翼

【MySQL】Windows下如何彻底卸载MySQL? 【MySQL】Windows下如何重置root账号密码? 【Java】Task07实验4第5题解析 【辅导】Task12 类的定义与继承练习 【辅导】Task11 如何获取文件上传错误信息 PHP开发环境配置 XAMPP更换Apahce服务端口号 《Web应用开发技术(PHP)》往届学生优秀作业 【辅导】Task19 实现用户登录 主要知识点 【辅导】Task18 更新与插入删除操作 主要知识点 【辅导】Task17 查询数据 主要知识点 【辅导】Task16 使用MySQL数据库 主要知识点 【辅导】Task15 熟悉错误与异常处理 主要知识点 【辅导】Task14 使用正则表达式 主要知识点 【辅导】Task13 使用会话管理 主要知识点(1) 【辅导】Task12 使用类和对象 主要知识点(2) 【辅导】Task12 使用类和对象 主要知识点(1) 【辅导】Task11 熟悉PHP文件操作 主要知识点 【辅导】Task10 掌握PHP表单处理 主要知识点
【辅导】Task13 使用会话管理 主要知识点(2)
银翼 · 2020-04-16 · via 博客园 - 银翼

动态网站设计都需要用到会话管理(主要是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、关于课后练习

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