zoukankan      html  css  js  c++  java
  • [轉]session_set_save_handler函数的简单用法

    from http://blog.opendigest.org/show-98-1.html

    void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)

    这个函数可以定义用户级的session的保存函数(打开、关闭、写入等)。
    比如,我们想把session保存在本地的一个数据库中时,本函数就很有用了。

    注意:使用本函数前,先要配置php.ini文件,session.save_hadler=user ,否则,session_set_save_handler()不会生效。

    此外,根据我的测试,你如果想让这样的session跨页面使用,还要在每一个用到session的脚本文件中加入你自定的函数及session_set_save_handler,所以,最好的方法是做成一个单独的文件,在每一个要用到session的脚本中用include来包含进来。

    下面这个例子提供了一个最基本的session保存法,类似于默认的files方法。
    如果你想用数据库来实现,这也是很容易做到的。

    Example 1. session_set_save_handler() example

    <?php

    function open ($save_path, $session_name) {
    global $sess_save_path, $sess_session_name;

    $sess_save_path = $save_path;
    $sess_session_name = $session_name;
    return(true);
    }

    function close() {
    return(true);
    }

    function read ($id) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
    } else {
    return("");
    }

    }

    function write ($id, $sess_data) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
    } else {
    return(false);
    }

    }

    function destroy ($id) {
    global $sess_save_path, $sess_session_name;

    $sess_file = "$sess_save_path/sess_$id";
    return(@unlink($sess_file));
    }

    /*********************************************
    * WARNING - You will need to implement some *
    * sort of garbage collection routine here. *
    *********************************************/
    function gc ($maxlifetime) {
    return true;
    }

    session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");

    session_start();

    // proceed to use sessions normally
    // 现在你就可以象往常一样地使用session了。


    ?>

  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/Athrun/p/1738734.html
Copyright © 2011-2022 走看看