【代码总结】PHP之会话跟踪技术
有些时候感觉自己学习的效率好低,一套教程一本书,反复听,反复看,反复敲代码。自学这条路真的是很艰难,在任何事情都没有成功之前都很枯燥乏味。自学的过程中总会遇到很多问题,有时候连错误的原因都找不出来,那种委屈却又找不出地方宣泄,遇到问题上平台上去提问,把问题解决后才能安心的来发一篇文章。也不是为了博客而发博客,而是想在学习中留下一些回忆,原来这些技术是我通宵达旦才研究透的。
我的文采不好,总结的不全,但是我始终相信天道酬勤;相信自己每发一篇帖子都会进步一次。上个月答应人道表哥5个月内挖50个CNVD,又加上电脑坏了,所以总共没法过几篇帖子。最近一个星期会更新面向对象以及数据库抽象层PDO的知识
------------------------------------------------------------------------------------------------------------------------------------------------------------------
===================
会话控制
===================
一、会话控制的原因
多个页面之间相互切换时,保持用户登录的状态,并且访问的都是自己登录的信息。
可以处理在同一个网站中同一个用户在多个页面共享数据的机制。
二、cookie的应用
将数据保存到客户端 相对不安全(个人喜好信息 不太重要的信息)
传输数据 数据如果太多 速度下降
1、在客户端中设置cookie
setcookie() 函数向客户端发送一个 HTTP cookie。如果成功,则该函数返回true。否则返回false
语法:
setCookie(name,value,expire,path,domain,secure);
setCookie('cookie名称','cookie的值',cookie有效时间,cookie的有效路径,cookie的有效域名,是否只能在https协议下使用);
参数:
描述 | |
---|---|
name | 必需。规定 cookie 的名称。 |
value | 必需。规定 cookie 的值。 |
expire | 可选。规定 cookie 的有效期。 |
path | 可选。规定 cookie 的服务器路径。 |
domain | 可选。规定 cookie 的域名。 |
secure | 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。 |
1 //将username的值传入给uname,保存客户端一周的时间 2 setCookie('uname','username',time()+60*60*24*7); 3 //将username的值传入给uname,保存客户端一周的时间,只在服务器的目录或子目录下有效,在test.com的域名或子域名下有效,参数为1,cookie尽在安全的链接中设置 4 setCookie('uname','username',time()+60*60*24*7,'/cookie','.test.com',1);
2、读取cookie中的资料
超全局数组
1 echo $_COOKIE[cookie名称]
3、数组形态的cookie应用
将多个内容值储存在相同的Cookie名称标识符下
1 setCookie('user[username]','admin'); //设置为$_COOKIE['user']['username'] 2 setCookie('user[password]',md5('123456')); //设置为$_COOKIE['user']['password'] 3 setCookie('user[email]','123@163.com'); //设置为$_COOKIE['user']['email']
4、删除cookie
删除与设置统一
1 setCookie('uname','username',time()-1); //把COOKIE设置为已过期的状态
三、Session的应用
Session将信息存储在服务器端(文件)
Session是基于cookie的,在使用session之前必须开启会话session_start();
1、将信息储存到session中
1 Session_start(); //启动session的初始化 2 $_SESSION['uname'] = 'zhu'; //注册Session变量,赋值一个用户名称 3 $_SESSION['uid'] = 1; //注册Session变量,复制一个用户的ID
保存Session变量的文件 --> 变量名|类型:长度:值
uname|s:"zhu";uid|i:1
2、注销变量与销毁Session
1 unset($_SESSION['uname']); //删除Session变量 2 $_SESSION = array(); //将某个用户在Session中注册的变量全部清除
注意:array清空$_Session数组的同时也将对应的Session文件内容清空
session_destory()函数,浙江这个用户对应的Session文件删除
四、思维导图