Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1536506
  • 博文数量: 194
  • 博客积分: 6450
  • 博客等级: 准将
  • 技术积分: 2085
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-06 13:39
文章分类

全部博文(194)

文章存档

2013年(38)

2012年(11)

2011年(1)

2010年(1)

2009年(4)

2008年(13)

2007年(18)

2006年(63)

2005年(45)

我的朋友

分类:

2006-02-21 09:07:33

为了把会话数据存入数据库,需要先创建一个数据表。

    CREATE TABLE sessions
(
id varchar(32) NOT NULL,
access int(10) unsigned,
data text,
PRIMARY KEY (id)
);

session_set_save_handler('_open', '_close', '_read', '_write','_destroy','_clean');
function _open()
{
global $_sess_db;

$db_user = $_SERVER['DB_USER'];
$db_pass = $_SERVER['DB_PASS'];
$db_host = 'localhost';

if ($_sess_db = mysql_connect($db_host, $db_user, $db_pass))
{
return mysql_select_db('lyw', $_sess_db);
}

return FALSE;
}

function _close()
{
global $_sess_db;

return mysql_close($_sess_db);
}

function _read($id)
{
global $_sess_db;

$id = mysql_real_escape_string($id);

$sql = "SELECT data FROM sessions WHERE id = '$id'";

if ($result = mysql_query($sql, $_sess_db))
{
if (mysql_num_rows($result))
{
$record = mysql_fetch_assoc($result);

return $record['data'];
}
}

return '';
}

function _write($id, $data)
{
global $_sess_db;

$access = time();

$id = mysql_real_escape_string($id);
$access = mysql_real_escape_string($access);
$data = mysql_real_escape_string($data);

$sql = "REPLACE INTO sessions VALUES ('$id', '$access', '$data')";

return mysql_query($sql, $_sess_db);
}

function _destroy($id)
{
global $_sess_db;

$id = mysql_real_escape_string($id);

$sql = "DELETE FROM sessions WHERE id = '$id'";

return mysql_query($sql, $_sess_db);
}

function _clean($max)
{
global $_sess_db;

$old = time() - $max;
$old = mysql_real_escape_string($old);

$sql = "DELETE FROM sessions WHERE access < '$old'";

return mysql_query($sql, $_sess_db);
}
session_start();
echo "Hello world!";
$_SESSION['name'] = "liuyiwei";
$_SESSION['desc'] = "This is only a test of session storage!";

?>


阅读(878) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~