美文网首页php知识积累
session和cookie的详细讲解

session和cookie的详细讲解

作者: hey_沙子 | 来源:发表于2019-06-19 15:40 被阅读1次
    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的步骤:
    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();

    相关文章

      网友评论

        本文标题:session和cookie的详细讲解

        本文链接:https://www.haomeiwen.com/subject/ohukfctx.html