您的位置:首页 > 其它

cookie+session

2018-03-23 20:48 204 查看
会话控制


会话指的是客户端和服务端之间的交互过程,控制可以理解为客户端在和服务端进行交互的时候进行的控制。
为什么使用会话控制?


 http协议是一个超文本无状态协议,没有一种内建机制来维护客户端和服务端间的对话,所以使用会话控制来解决这一问题。
(-)cookie

Cookie的概念:cookie是一种存储在客户端浏览器里用来跟踪和识别用户上 网信息的机制。简单的来说,cookie就是web服务器暂时存储在用户硬盘上的一 个文本文件,并随后被web浏览器读取。当用户再次访问该web网站的时候,网 站通过读取cookie文件记录这位访客的特定信息(如上次访问的位置、花费的时 间、用户名和密码等)从而做出迅速响应。

 Cookie 的功能:记录访客的某些信息(例如用户名、三天免登陆),在多页面 之间传递变量,将所有查看的Internet页存储在cookie 的临时文件夹里,可以提高 浏览的速度。
Cookie的使用步骤
1)设置cookie:setcookie(‘cookie的名字’,’cookie的值’,过期时间,路径)
2)读取cookie:$_COOKIE[‘cookie的名字’]
3)删除cookie:
setcookie(“要删除的cookie的名字”,””,time()-1)
浏览器手动删除
Cookie的分类:分为会话cookie和持久cookie,会话cookie就是没有给cookie设置过期时间,当关闭浏览器或者关闭电脑cookie就会自动消失;持久cookie就是给cookie设置了过期时间,只要过期时间没到,关闭浏览器和关闭电脑cookie都不会消失,只有过期时间到了才会消失
session

  Session的定义:session是一种存储服务器端用来跟踪和识别用户信息的会话机制。当启动一个session会话时,会生成一个随机且唯一的session_id,也就是session文件名,此时,session_id存储在本地的cookie里。当关闭页面时此id会自动注销,重新登录此页面,会再次生成一个随机的id。
session的使用
   使用步骤:
     1)开启session:session_start(); 此函数前面不能有任何输出
     2)给session赋值:$_SESSION[‘名’]=值
     3)使用session:$变量名=$_SESSION[‘名’]
 4)删除session:
   删除单个session:unset($_SESSION[‘名’])
   删除多个session:$_SESSON=array();

   结束当前所有session:session_destroy()

session和cookie的区别 

session存储在服务器端,cookie存储在客户端,session相对于安全,cookie不安全,session和cookie都可以设置过期时间,都可以跨页面传值,都可以实现会话功能。Session开启后,有一个sessionid存储在cookie里,如果客户端禁止了cookie,sessionid以url地址栏的方式进行传输。
、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

cookie 和session 的联系:
session是通过cookie来工作的
session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。
在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。

session或cookie实现用户登录的会话控制

 Cookie实现登陆控制:setcookie(“名”,”值”,”过期时间”),设置完成后,在每一个登陆后才能访问的页面加入:if(empty($_COOKIE[‘名’])){ die(“未登录,不能操作!”)},如果用户选择了七天免登陆,在登陆界面加入:
if(!empty($_COOKIE[‘名’])){ header(“跳转”)}
  Session实现登陆控制:session_set_cookie_params(1*60);session_start();  $_SESSION[‘名’]=值;,设置完成后,在每一个登陆后才能访问的页面加入:if(empty($_SESSION[‘名’])){ die(“未登录,不能操作!”)},如果用户选择了七天免登陆,在登陆界面加入:if(!empty($_SESSION[‘名’])){ header(“跳转”)}





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cookie和session