session_set_save_handler()用法
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是数字时,会发生很奇怪的事情。就是值丢失了。。。
报错信息如下:
<?php
include "./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
?>
阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: PHP获取汉字拼音首字母
- 下一篇:没有了