Cookie&Session

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie&Session相关的知识,希望对你有一定的参考价值。

        前 言

cookie $ session

    Cookie&Session是常用的会话跟踪技术,二者都能记录状态,前者是将状态数据保存在客户端,后者则保存在服务端。

下面简单介绍一下Cookie和Session的内容以及使用方法,并没有关于区别之类的详解

 

1 Cookie

设置cookie
参数    ① cookie的name
           ② 需要存到cookie的值
           ③ cookie的有效期,需要是UNIX时间戳,可以使用time()函数获得。单位为秒
           ④ cookie的有效路径,默认只在当前目录有效。设置"/"表示所有目录有效
           当设置"/"将cookie保存到全局时,需要注意本目录下是否有同名cookie,两者并不会回想覆盖;
           比如下面两行代码同时执行,会在当前目录和全局各生成一个cookie,两者不会代替
           在当前目录读取cookie时,会优先读取本目录下的cookie

读取cookie

  超全局数组$_cookie
 
删除cookie:
  ① 设置 一个同名cookie,时间为过期;
    
   ② 省略setcookie()函数的所有参数,只保留name即为删除操作

 

2 Session

使用session必须先启动session;
        使用session_start()函数启动session,注意这个函数之前不能有任何输出语句,一般写在文件最上方;
        修改php.ini文件,设置session.auto_start = 1可以启动时初始化session。
    但是,设置自动启动后,将不能往session中存入对象, 因为对象需要在启动之后才能产生。

在使用session后,会在cookie中保存一个键为"PHPSESSID"的记录,用于记录session的唯一标记;
    当浏览器关闭以后,sessionID默认失效

session的存值取值:
        启动session后,直接操作session全局数组即可
        $_SESSION["user"] = "hehe";  存值
        echo $_SESSION["user"];  取值

销毁session的几种方式:
        ①删除session中的某一项:
         unset($_SESSION["键名"]);
        ①清除session中全部数据:
         $_SESSION=array();
        ③删除服务器端保留session信息的文件
         session_destroy();

两个常用配置:
        session.cookie_lifetime=0; 设置浏览器关闭时,保存SESSIONID的cookie文件就被删除。也就是说浏览器一关闭,session就失效;
        session.gc_maxlifetime;设置过期session时间,默认1440秒(24分钟)。也就是说,即便是浏览器未关闭,在24分钟没有操作的情况下,session也会过期。
   

以上是关于Cookie&Session的主要内容,如果未能解决你的问题,请参考以下文章

cookie与session

Django之Session与Cookie

cookie/session应用笔记

Django-7

cookie和session了解吗

1204 中间件以及cookie,session