php知识积累

session和cookie的详细讲解

2019-06-19  本文已影响1人  hey_沙子
session和cookie的使用步骤分别是什么?什么是sesssion和cookie的生命周期?session和cookie的区别是什么?

cookie是保存在客户端机器的,对于未设置过期时间的cookie,cookie值会保存在机器的内存中,只要关闭浏览器则cookie自动消失。如果设置了cookie的过期时间,那么浏览器会把cookie以文本文件的形式保存到硬盘中,当再次打开浏览器时cookie值依然有效。

session是把用户需要存储的信息保存在服务器端。每个用户的session信息就像是键值对一样存储在服务器端,其中的键就是sessionid,而值就是用户需要存储信息。服务器就是通过sessionid来区分存储的session信息是哪个用户的。

两者最大的区别

session在web开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到服务器的内存中,当用户以此身份
访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户则不分配session空间,即便输入了
管理后台的访问地址也不能看到页面内容。通过session确定了用户对页面的操作权限。

使用session的步骤:
  1. 启动session:
    使用session_start()函数来启动。
  2. 注册会话:
    直接给$_SESSION数组添加元素即可。
  3. 使用会话:
    判断session是否为空或者是否已经注册,如果已经存在则像普通数组使用即可。
  4. 删除会话:
    1.可以使用unset删除单个session;
    2.使用$_SESSION=array()的方式,一次注销所有的会话变量;
    3.使用session_destroy()函数来彻底销毁session。
使用cookie的步骤
  1. 记录用户访问的部分信息
  2. 在页面间传递变量
  3. 将所查看的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();

上一篇下一篇

猜你喜欢

热点阅读