在把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自已真的还没弄明白,就一个路径的问题还瞎折腾许久。。。 |