美文网首页
9.php cookie session

9.php cookie session

作者: dwy_interesting | 来源:发表于2020-05-27 10:04 被阅读0次

    cookie管理

    认识cookie

    cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。

    设置cookie

    使用函数setcookie,PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。
    函数:

    setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false]]]]] ) 
    

    参数:
    name: cookie的名称,即$_COOKIE这个全局数组的键值
    value: cookie变量的值,参数为空,Cookie的值为空。Cookie不能保存布尔值,用0表示false,1表示true。
    expire: 有效期结束的时间,以秒为单位。
    path: 有效目录,默认为“/”,即整个域名下有效。如果有需要,可以设置仅在某目录下有效。
    domain: 有效域名,顶级域唯一,默认在本域名下。
    secure: 是否对Cookie进行加密传输,默认为false.如果值为true,则cookie只能在https连接上有效,如果为默认值false,则http和https都可以。
    举个栗子 :

    <?php
    $value = 'I am a girl';
    setcookie("TestCookie", $value); /* 简单cookie设置 */
    setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */
    ?>
    

    读取cookie

    直接用php内置超级全局变量 $_COOKIE就可以读取浏览器端的cookie.
    上面例子中设置了cookie"TestCookie",现在我们来读取:

    print $_COOKIE['TestCookie'];
    

    删除cookie

    Cookie没有显示的删除,如果要删除Cookie,应该将Cookie的expire设置成过期的时间,如一个小时前、1970年,这回自动触发浏览器的删除机制,或者把值设置为空。例如:

    setcookie("name","",time()-1);
    

    session管理

    认识session

    session又被称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的网页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

    使用session

    Session在PHP中使用需要先开启session,因此第一步是开启session,函数是session_start()。在开启session的同时,浏览器会自动生成一个session_id。

    (1)添加Session

               $_SESSION['session键值'] = "session值";
    

    (2)修改session

               $_SESSION['session键值'] = "session新值";
    

    (3)查看session值

               // 查看全部session
               var_dump($_SESSION);
               // 单独查看键值为test的Session值
               var_dump($_SESSION['test']);
    

    (4)删除session

              // 删除session值,但保留数据类型
              $_session['session键值'] = array();
     
              // 删除cookie中的session_id
              $session_id = session_name();
              setCookie($session_id,"",time()-1);
               
              // 释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件也不释放对应的session_id
              session_unset();
     
              // 删除当前用户对应的session文件以及释放session_id,但内存中的$_SESSION变量内容依然保留
              session_destroy();
    

    cookie 和session区别

    Cookie和Session的区别:
    (1)存储位置:Cookie存储在客户端浏览器中,相对不安全;Session内容所在文件存储在服务器中,一般在根目录下的tmp文件夹中,相对更安全。
    (2)数量和大小限制:Cookie存储的数据在不同的浏览器会有不同的限制,一般在同一个域名下,Cookie变量数量控制在20个以内,每个cookie值的大小控制在4kb以内。session值没有大小和数量限制,但如果数量过多,会增大服务器的压力。
    (3)内容区别:cookie保存的内容是字符串,而服务器中的session保存的数据是对象。
    (4)路径区别:session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

    相关文章

      网友评论

          本文标题:9.php cookie session

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