把Session放入MySql
程序员文章站
2024-01-25 13:48:22
...
session通常放在/tmp目录下,而该文件夹的权限是everbody可读,这个就非常可怕了!学校的论坛曾经就有人通过session来盗取帐号!所以后来就尝试把session放入数据库,表的结构和过程如下:
//创建表
//create sesslib.sql
CREATE TABLE sesslib (
data text,
time datetime,
id int(11) DEFAULT '0' NOT NULL auto_increment,
sid varchar(32) NOT NULL,
PRIMARY KEY (id),
UNIQUE sid (sid)
);
//End
//XX.php自定义了session的数据库路径,当某个页面需要使用//session时,可以include这个部分,使用方法为:
include "XX.php";//XX.php
session_start();
//以下就可以正常使用session了
?>
/******************************************************/
XX.php 内容:
/*****************************************************/
$sess_dbh="";
$sess_maxlifetime=get_cfg_var("session.gc_maxlifetime");
function sess_open($save_path, $session_name) {
global $hostname, $dbusername, $dbpassword, $dbname, $sess_dbh;
//$sess_dbh=mysql_pconnect($hostname,$dbusername,$dbpassword) or die("不能连接数据库!");
$sess_dbh=mysql_pconnect('localhost','test','test') or die("不能连接数据库!");
// mysql_select_db("$dbname") or die("不能选择数据库!");
mysql_select_db('test') or die("不能选择数据库!");
return(true);
}
function sess_close() {
//mysql_close();
return(true);
}
function sess_read($sid) {
global $sess_dbh;
$result = mysql_query("select data from sesslib where sid='$sid'", $sess_dbh);
//创建表
//create sesslib.sql
CREATE TABLE sesslib (
data text,
time datetime,
id int(11) DEFAULT '0' NOT NULL auto_increment,
sid varchar(32) NOT NULL,
PRIMARY KEY (id),
UNIQUE sid (sid)
);
//End
//XX.php自定义了session的数据库路径,当某个页面需要使用//session时,可以include这个部分,使用方法为:
include "XX.php";//XX.php
session_start();
//以下就可以正常使用session了
?>
/******************************************************/
XX.php 内容:
/*****************************************************/
$sess_dbh="";
$sess_maxlifetime=get_cfg_var("session.gc_maxlifetime");
function sess_open($save_path, $session_name) {
global $hostname, $dbusername, $dbpassword, $dbname, $sess_dbh;
//$sess_dbh=mysql_pconnect($hostname,$dbusername,$dbpassword) or die("不能连接数据库!");
$sess_dbh=mysql_pconnect('localhost','test','test') or die("不能连接数据库!");
// mysql_select_db("$dbname") or die("不能选择数据库!");
mysql_select_db('test') or die("不能选择数据库!");
return(true);
}
function sess_close() {
//mysql_close();
return(true);
}
function sess_read($sid) {
global $sess_dbh;
$result = mysql_query("select data from sesslib where sid='$sid'", $sess_dbh);
推荐阅读
-
把Session放入MySql
-
php把mssql数据导入转换mysql数据库
-
php使用MySQL保存session会话的方法_PHP
-
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例,sessionhandler
-
php怎么把session保存到MySql数据库中
-
mysql查询结果排序,name字段有中文名字,有英文名字,如何按a-z的顺序把名字排序
-
把mysql查询结果保存到文件的shell脚本
-
php如何把mysql 的查询结果形成数字,有啥方便的办法。
-
把oracle数据库中的表写到mysql中
-
如何把图片、声音等存储到sql中_MySQL