银河源码

高品质源码点击这里给我发消息PHP-LotusAdmin官方论坛

原生php实现session过期时间设置

撸码思路:

只使用php实现,创建一个session类,在session写入时,把过期时间也写入。读取时,根据过期时间判断是否已过期。
直接撸代码:

<?php

/**

 * Session控制类

 */

class Session{

  /**

   * 设置session

   * @param String $name  session name

   * @param Mixed $data  session data

   * @param Int  $expire 超时时间(秒)

   */

  public static function set($name, $data, $expire=600){

    $session_data = array();

    $session_data['data'] = $data;

    $session_data['expire'] = time()+$expire;

    $_SESSION[$name] = $session_data;

  }

  /**

   * 读取session

   * @param String $name session name

   * @return Mixed

   */

  public static function get($name){

    if(isset($_SESSION[$name])){

      if($_SESSION[$name]['expire']>time()){

        return $_SESSION[$name]['data'];

      }else{

        self::clear($name);

      }

    }

    return false;

  }

  /**

   * 清除session

   * @param String $name session name

   */

  private static function clear($name){

    unset($_SESSION[$name]);

  }

}

?>

使用:

<?php
//一定要session_start
session_start();

$data = '123456';

session::set('test', $data, 10);

echo session::get('test'); // 未过期,输出

sleep(10);

echo session::get('test'); // 已过期

?>

如果支付后未自动下载,请主动联系站长,站长QQ 610176732

当前页面:银河源码 » 原生php实现session过期时间设置

评论