跨服务器共享session
时间:2005-10-27 来源:erwolf
跨域名共享session一直是一个令人头疼的问题,遇到这个问题在网络上也搜索过.大都没有具体的实现方法.
我现在找到一个共享session的实现方法,写出来大家讨论一下.扔块砖头,有玉的砸过来.
主要原理是每次会话都有一个唯一的session-id,通过session-id来传递信息
跨域名共享session一直是一个令人头疼的问题,遇到这个问题在网络上也搜索过.大都没有具体的实现方法.
我现在找到一个共享session的实现方法,写出来大家讨论一下.扔块砖头,有玉的砸过来.
首先,建立保存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["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
此实现session共享的方法通过每次会话的session-id都不同,将会话内容保存在数据库中.然后通过session-id在将数据库中的会话数据取出进行验证.将会话内容保存在数据库中,可以实现session在不同主机之间共享.
相关阅读 更多 +