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

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 银翼

【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、关于课后练习

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