session_set_save_handler()用法

来源:互联网 发布:p2p网络借贷法律规定 编辑:程序博客网 时间:2024/04/30 21:56

CREATE TABLE `session` (  `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,  `sess_id` varchar(40) NOT NULL DEFAULT '',  `data` text NOT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=138 DEFAULT CHARSET=utf8;


  <?php $con =mysql_connect("127.0.0.1","root" , "root");        mysql_select_db("session");function open($save_path, $session_name) {  echo 1;return(true);}function close() {echo 5;  return(true);}function read($id) {  echo 2;   if($result = mysql_query("SELECT * FROM session WHERE id='$id'")) {if($row = mysql_fetch_row($result ))   {  return $row["data"]; }  }   else {  return "";  }}function write($id, $sess_data) {echo 3;  if($result = mysql_query("UPDATE session SET data='$sess_data' WHERE id='$id'")) {return true;  }   else {  return false;  }}function destroy($id) {echo 4; if($result = mysql_query("DELETE * FROM  session WHERE id='$id'")) {return true;  }   else {  return false;  }}/********************************************** 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?>


上方的代码,执行流程是:open( ) --->read( ) --->write( )--->close( )


现在我们的工作就已经完成了,只要你在需要在使用session的时候,把session_user_start.php。

包含进来,注意,这个文件一定要在文件的第一行包含,然后就想使用文件的session一样的方法使用就可以了。

这里总结一点:

下方代码是引用文件,然后赋值;可是当key是数字时,会发生很奇怪的事情。就是值丢失了。。。


报错信息如下:


<?phpinclude "./session.php";//session_start();$_SESSION['1515'] = "4546";print_r($_SESSION);DIE;

下方为为了插入库,改过session.php文件

 <?php   $con =mysql_connect("127.0.0.1","root" , "root") or die("链接失败mysql_error()");          mysql_select_db("test");      function open($save_path, $session_name)       {  //echo $save_path,$session_name;        return(true);      }      function close()       {      return(true);      }      function read($id)       { //echo $id;       if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))           {              if($row = mysql_fetch_row($result ))                 {  return $row["data"]; }            }         else           {            return "";            }      }      function write($id, $sess_data)       { //echo $id,$sess_data;$sql = "insert into session SET data='$sess_data',  sess_id='$id'";      if($result = mysql_query($sql))           {  echo "ok";            return true;            }         else           {            return false;            }    print_r($result);die;    }      function destroy($id)       {     if($result = mysql_query("DELETE * FROM  session WHERE id='$id'"))           {              return true;            }         else           {            return false;            }      }      /*********************************************     * 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  ?>  


0 0
原创粉丝点击