在把QQ账号登陆集成到网站上时,网站的登陆模块就使用SESSION,在集成QQ账号登陆的过程中,发现怎么也不能把QQ登陆的SESSION用在网站上,后来没办法了,把/COMM/SESSION.PHP下的文件改了3处,分别如下: 1. /**
* 指定session有效的域名
* ini_set("session.cookie_domain", ".domain.com");
* .domain.com是站点的主域名,请注意前面个有一个'.'
*/
define("MAIN_DOMAIN", "www.eoncn.com"); //设置主域名
/**
* 不同子域名下共享session信息
* COOKIE_DOMAIN = false 禁止该功能
* COOKIE_DOMAIN = true 启用该功能
* 默认禁止
* 开启前提需要定义MAIN_DOMAIN常量
*/
define("COOKIE_DOMAIN", false);
if (defined("COOKIE_DOMAIN") && COOKIE_DOMAIN)
{
if (defined("MAIN_DOMAIN"))
@ini_set("session.cookie_domain", MAIN_DOMAIN);
}
在这一处中,把宏COOKIE_DOMAIN定义为FALSE,当时想的就是大不了以后就只在WWW.EONCN.COM下使用登陆功能了 2. **
* 同一个主域名,不同服务器之间共享session信息
* USER_SESSION = false 禁用该功能
* USER_SESSION = true 启用该功能
* 默认禁止
* 开启前提需要建立mysql数据表
*/
define("USER_SESSION", false);
if (defined("USER_SESSION") && USER_SESSION)
{
@ini_set("session.save_handler", "user");
$session = new Session;
@session_module_name("user");
@session_set_save_handler(
array(&$session, "open"),
array(&$session, "close"),
array(&$session, "read"),
array(&$session, "write"),
array(&$session, "destroy"),
array(&$session, "gc"));
}
这一处同上,就一个服务器,也把宏USER_SESSION设为false,我这是根据实际情况来,这样还少建一个表。 3. //@session_id("demo");
//session_save_path("/web/www/dbst.com.cn/tmp");
session_start();
这一处该注释掉后,就跟原来的SESSION在一起了,也就能使用原来的在线的所有功能了。 最后才发现,原来SEESION自已真的还没弄明白,就一个路径的问题还瞎折腾许久。。。 |