zoukankan      html  css  js  c++  java
  • php中如何删除和销毁Session

    当使用完一个 Session 变量后,可以将其删除;当完成一个会话以后,也可以将其销毁。如果用户想退出 Web 系统,就需要为他提供一个注销的功能,把他的所有信息在服务器中销毁。

    删除会话的主要有删除单个会话、删除多个会话和结束当前会话有3种方式,下面就3种方式分别作一个简单的介绍。直线电机生产厂家

    (1)删除单个会话

    删除单个会话即删除单个会话的变量、同数组的操作一样,直接注销 $_SESSION 数组 的某个元素即可。

    例如: $_SESSION['user']变量,可以使用 unset()函数,代码如下所示:

    1

    unset( $_SESSION['user']);

    注意: 使用 unset()函数时,要注意 $_SESSION 数组中元素不能省略,即不可以一次注销整个数组,这样会禁止整个会话的功能,如 unset($_SESSION)函数会将全局变量 $_SESSION 销毁,而且没有办法将其回复,用户也不能再注册 $_SESSION 变量。

    如果要删除多个或者全部会话,可采用下面的两种方法。

    (2)删除多个会话

    如果想把某个用户在 Session 中注册的所有变量都删除,也就是删除多个会话即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION来实现,其代码显示如下:

    1

    $_SESSION = array();

    (3)结束当前会话

    如果整个会话已经结束,首先应该注销所有会话变量,然后使用 session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session,其代码如下显示:

    1

    session_destroy();

    相对于 session_start() 函数 (创建 Session 文件),session_destroy()函数用来关闭 Session 的运作 (删除 Session 文件),如果成功则返回 TURE,销毁 Session 资料失败则返回 FALSE。但该函数并不会释放和当前 Session 相关的变量,也不会删除保存在客户端 Cookie 中的 Session ID 。

    PHP默认的 Session 是基于 Cookie的,Session ID 被服务器存储在客户端的 Cookie 中,所以在注销 Session 时也需要清除 Cookie 中保存的 Session ID,而这就必须借助 setcookie() 函数来完成。 在 Cookie 中,保存 Session ID 的 Cookie 标识名称就是 Session 的名称,这个名称是在 php.ini中,通过 session.name 属性指定的值。在php脚本中,可以通过 session_name() 函数获取 Session 的名称。 删除保存在客户端 Cookie 中的 Session ID。

    前面的讲解可以总结出 Session 的删除和注销过程需要好几个步骤。下面将通过一个实例,提供完整的代码,运行该脚本后就可以关闭 Session,并销毁与本次会话有关的所有资源。

    彻底销毁Session代码如下所示:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    <?php

      //开启 Session

      session_start();

      // 删除所有 Session 变量

      $_SESSION = array();

      //判断 cookie 中是否保存 Session ID

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

         setcookie(session_name(),'',time()-3600, '/');

      }

      //彻底销毁 Session

      session_destroy();

    ?>

    注意:使用 $_SESSION = array() 清空 $_SESSION数组的同时,也将这个用户在服务器端对应的 Session 文件内容清空。而使用 session_destroy()函数时,则是将这个用户在服务器端对应的 Session 文件删除。https://www.furuihua.cn/product/416.html

  • 相关阅读:
    Cocos2dx开发游戏移植到Android平台
    cocos2dx创建sprite的多种方法
    C++实现大数据乘法
    使用detours实现劫持
    使用C与C++混合编程封装UDP协议
    C++实现大数据乘法
    使用C与C++混合编程封装UDP协议
    python字符串类型
    python数字类型
    python数据类型
  • 原文地址:https://www.cnblogs.com/furuihua/p/12201834.html
Copyright © 2011-2022 走看看