session_set_save_handler
来源:互联网 发布:数控转塔冲床编程 编辑:程序博客网 时间:2024/05/21 14:52
想做一个系统,实现一个用户,同一时间,只能在一个电脑登录。网上找了好多实例,不知道为什么在我本机session_set_save_handler()就是运行不了,不往数据库里面插入数据,也不报错。。有知道的朋友麻烦帮帮忙,谢谢了。
我的是php5.1.4
CREATE DATABASE IF NOT EXISTS db_database11;
USE db_database11;
DROP TABLE IF EXISTS `tb_session`;
CREATE TABLE `tb_session` (
`session_key` char(32) NOT NULL,
`session_data` char(255) default NULL,
`session_time` int(11) unsigned default NULL,
PRIMARY KEY (`session_key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `tb_session` (`session_key`,`session_data`,`session_time`) VALUES
('72850cdb804cbd025393c2cf53aaed06','SID|b:1;',1260923191);
<?php
function _session_open($save_path,$session_name)
{
global $handle;
$handle = mysql_connect('localhost','root','root') or die('数据库连接失败'); // 连接MYSQL数据库
mysql_select_db('db_database11',$handle) or die('数据库中没有此库名'); // 找到数据库
return(true);
}
function _session_close()
{
global $handle;
mysql_close($handle);
return(true);
}
function _session_read($key)
{
global $handle; // 全局变量$handle 连接数据库
$time = time(); // 设定当前时间
$sql = "select session_data from tb_session where session_key = '$key' and session_time > $time";
$result = mysql_query($sql,$handle);
$row = mysql_fetch_array($result);
if ($row)
{
return($row['session_data']); // 返回Session名称及内容
}else
{
return(false);
}
}
function _session_write($key,$data)
{
global $handle;
$time = 60*60; // 设置失效时间
$lapse_time = time() + $time; // 得到Unix时间戳
$sql = "select session_data from tb_session where session_key = '$key' and session_time > $lapse_time";
$result = mysql_query($sql,$handle);
if (mysql_num_rows($result) == 0 ) // 没有结果
{
$sql = "insert into tb_session values('$key','$data',$lapse_time)"; // 插入数据库sql语句
$result = mysql_query($sql,$handle);
}else
{
$sql = "update tb_session set session_key = '$key',session_data = '$data',session_time = $lapse_time where session_key = '$key'"; // 修改数据库sql语句
$result = mysql_query($sql,$handle);
}
return($result);
}
function _session_destroy($key)
{
global $handle;
$sql = "delete from tb_session where session_key = '$key'"; // 删除数据库sql语句
$result = mysql_query($sql,$handle);
return($result);
}
function _session_gc($expiry_time)
{
global $handle;
$lapse_time = time(); // 将参数$expiry_time赋值为当前时间戳
$sql = "delete from tb_session where expiry_time < $lapse_time"; // 删除数据库sql语句
$result = mysql_query($sql,$handle);
return($result);
}
session_set_save_handler('_session_open','_session_close','_session_read','_session_write','_session_destroy','_session_gc');
session_start();
$_SESSION['user'] = 'mr111111';
$_SESSION['pwd'] = 'mrsoft';
?>
- session_set_save_handler
- session_set_save_handler
- session_set_save_handler实例
- session_set_save_handler()使用
- session_set_save_handler()函数的实例
- session_set_save_handler函数的用法
- session_set_save_handler 函数用法
- session_set_save_handler()用法
- session_set_save_handler()函数注意细节
- PHP的session_set_save_handler 执行机制
- Php中session_set_save_handler的含义
- PHP的session_set_save_handler 执行机制
- 重载session存储方式–session_set_save_handler()
- session_set_save_handler 举例 (将session值存入mysql)
- php session_set_save_handler 函数的用法(mysql)
- php session_set_save_handler 函数的用法(file)
- php session_set_save_handler 函数的用法(mysql)
- session_set_save_handler函数控制session有效期问题
- 如何操作Cookie
- MySQL常用语法记录
- 在VS2005的设置Utf-8
- c++处理 XML文件
- firefox常用插件
- session_set_save_handler
- hust 1418 Minimum Enclosing Circle
- window.parent & window.opener
- iframe之间的通信与操作 .
- Windows下Apache与Tomcat的整合
- web标准Html Dom学习
- Zend Studio 5.5.1 集成开发环境
- facebook 启示
- 熟悉C++标准库