- 论坛徽章:
- 0
|
首先,建立保存session的表sessions
CREATE TABLE sessions (
sid char(32) not null,
expiry int(11) unsigned not null,
value text not null,
PRIMARY KEY (sid)
);
注册session的页面session_reg.php
<?
session_start();//会话开始
$SID=session_id();//每次建立会话都会产生一个唯一的session id,函数session_id()不带参数时取得当前会话的id
$_SESSION["sesname"]="value_of_sesname";//注册变量
$_SESSION["sesname2"]="value_of_sesname2";
$sess_text=session_encode();//将当前会话的数据进行编码
$expiry=time()+3000;//设置session有效时间
$conn=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD);//连接数据库
mysql_select_db($DB_NAME);
mysql_query("insert into sessions values ('$SID','$expiry','$sess_text')" ;//保存当前会话的内容
header("location:http://xxx.xxx.com/echoses.php?SID=$SID" ;
?>;
使用session的页面echoses.php
<?
$conn=mysql_connect($DB_HOST,$DB_USER,$DB_PASSWD);
mysql_select_db($DB_NAME);
session_id($SID);//设置session-id,注意函数session_id()此时带有参数,就是前面传过来的SID.
//此时函数用来设置当前会话的id号(session-id),这种用法时,函数需在session_start()之前别调用
$rs=mysql_query("select value from sessions where sid='$SID'" ;//去会话内容
if(mysql_num_rows($rs)) session_decode(mysql_result($rs,0,"value" );//将会话数据进行解码
session_start();//会话开始
echo "sesname=".$_SESSION["sesname"];
echo "<br />;sessname2=".$_SESSION["sesname2"];
?>;
此实现session共享的方法通过每次会话的session-id都不同,将会话内容保存在数据库中.然后通过session-id在将数据库中的会话数据取出进行验证.将会话内容保存在数据库中,可以实现session在不同主机之间共享. |
|