删除session

session会话默认是基于cookie的,如果cookie被禁止的话则通过url传递

通过url传递时:

    常量SID 是判断用户是否 有session_id的值 ,没有此常量就为 session_name()=session_id()格式的字符串,否则为空串"" 。       


    在php.ini配置文件中session.use_only_cookies = 1(非0为真,0为假) 设置为1的话,则服务器默认为发送服务器的链接添加session_name()=session_id()

   这个配置在linux服务器上没有问题,window服务器上有点问题,用时需要注意!

      $sid = $_GET["session_id()"];//意思是通过url获取传过来的session_id值

      session_id($sid);这样的话,session会获取这个session_id在服务器端存储的内容,这个必须在session_start()之前调用


删除session:

    unset($_SESSION) 是删除整个session数组,以后就不能在使用它了,即当前session_id对应的内容和session_name都被在内存中清除了

       $_SESSION=array(); //这样以后可以再赋值session数组,即当前session_id对应内存中的内容被清空了,session_name赋了空值

   释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session_id

   session_destroy()
   删除当前用户对应的session文件以及释放session_id,内存中的$_SESSION变量内容依然保留

   因此,释放用户的session所有资源,需要顺序执行如下代码:

   程序代码

      <?php

         session_start(); //这个必须开启,才能删除session变量

         unset($_SESSION["name"]);//删除单个session变量

         if(isset($_COOKIE[session_name()]))

         {

           setcookie("name","",time()-3600,"/");//删除客户端session_id();

         }

        session_destroy();

     ?>

javascript的cookie操作:

    js 操作cookie是,cookie的键名和值不能出现,;=和空格,需用 escape()转码。

    var exp = new Date();
    exp.setTime(exp.getTime() + 24*60*60*1000);
    document.cookie='name='+new Array('a','b','c')+';path=/;expires='+exp.toGMTString();

   js设置cookie时,一个变量对应一个cookie值,即document.cookie='name=hello;password=world;path=/;expires='+exp.toGMTString(); 不正确默认只取name值

   正确的是

        document.cookie='name=hello;path=/;expires='+exp.toGMTString();

       document.cookie='password=world;path=/;expires='+exp.toGMTString();

    alert(document.cookie); 值为: name=hello;password=world


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值