session和cookie的详细讲解
session和cookie的使用步骤分别是什么?什么是sesssion和cookie的生命周期?session和cookie的区别是什么?
cookie是保存在客户端机器的,对于未设置过期时间的cookie,cookie值会保存在机器的内存中,只要关闭浏览器则cookie自动消失。如果设置了cookie的过期时间,那么浏览器会把cookie以文本文件的形式保存到硬盘中,当再次打开浏览器时cookie值依然有效。
session是把用户需要存储的信息保存在服务器端。每个用户的session信息就像是键值对一样存储在服务器端,其中的键就是sessionid,而值就是用户需要存储信息。服务器就是通过sessionid来区分存储的session信息是哪个用户的。
两者最大的区别
- 存储位置:session存储于服务器,cookie存储于浏览器
- 安全性:session安全性比cookie高
- session为‘会话服务’,在使用时需要开启服务,cookie不需要开启,可以直接用
session在web开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到服务器的内存中,当用户以此身份
访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户则不分配session空间,即便输入了
管理后台的访问地址也不能看到页面内容。通过session确定了用户对页面的操作权限。
使用session的步骤:
- 启动session:
使用session_start()函数来启动。 - 注册会话:
直接给$_SESSION数组添加元素即可。 - 使用会话:
判断session是否为空或者是否已经注册,如果已经存在则像普通数组使用即可。 - 删除会话:
1.可以使用unset删除单个session;
2.使用$_SESSION=array()的方式,一次注销所有的会话变量;
3.使用session_destroy()函数来彻底销毁session。
使用cookie的步骤
- 记录用户访问的部分信息
- 在页面间传递变量
- 将所查看的internet页存储在cookies临时文件夹中,可以提高以后的浏览速度。
创建cookie:
setcookie(string cookiename , string value , int expire);
读取cookie:
通过超级全局数组$_COOKIE来读取浏览器端的cookie的值。
删除cookie:有两种方法
1.手工删除方法:
右击浏览器属性,可以看到删除cookies,执行操作即可将所有cookie文件删除。
2.setcookie()方法:
跟设置cookie的方法一样,不过此时将cookie的值设置为空,有效时间为0或小于当前时间戳。
使用cookie的注意事项
1) setcookie()之前不可以有任何页面输出,就是空格,空白行也不可以;
2) setcookie()后,在当前页面调用$_COOKIE['cookiename']不会有输出,必须刷新或到下一个页面才可以看到cookie值;
3) 不同的浏览器对cookie处理不同,客户端可以禁用cookie,浏览器也可以闲置cookie的数量,一个浏览器能创建的cookie数量最多300个,并且每个不可以超过4kb,
每个web站点能设置的cookie总数不能超过20个。
4) cookie是保存在客户端的,用户禁用了cookie,那么setcookie就不会起作用了。所以不可以过度依赖cookie。
通过session_id()函数可以取得当前的session_id表示当前用户,从而与其他用户进行区分
如何设置一个cookie的名字为username,值为jack,并且让此cookie一周后失效?
一个浏览器最多可以产生多少个cookie,每个cookie文件最大不能超过多少?
setcookie(‘username’,’jack’,time()+7243600);
最多可以产生20个cookie,每个最多不超过4K
设置或读取session之前,需要做什么?
可以直接在php.ini中开启session.auto_start = 1或者在页面头部用session_start();
开启session,session_start()前面不能有任何输出,包括空行。
在实际开发中,session在哪些场合使用?
session用来存储用户登录信息和用在跨页面传值。
1)常用在用户登录成功后,将用户登录信息赋值给session;
2)用在验证码图片生成,当随机码生成后赋值给session。
注销session会话的形式有几种?
unset()
$_SESSION=array();
session_destroy();