百翔网络之前一直都是用ucenter来关联一些CMS的用户登录状况,最近越来约发现ucenter好麻烦,而CMS的很多用户操作或者空间什么的都是白痴无用的,所以干脆抛弃CMS的用户系统,直接来关联DISCUZ的用户系统。
这样,我们就必须了解discuz的用户登录机制,由于discuz太复杂了,上社站长懒得看了,索性直接调用它的核心,然后用$_G来获取好了。
针对discuz X2.0 版本,我这样写:
<?php
include('E:\web\jianxun\bbs\source\class\class_core.php');
$discuz = & discuz_core::instance();
$discuz->init_cron = false;
$discuz->init_session = false;
$discuz->init();
ob_start("ob_gzhandler");
//print_r($_G);
?>
解释:
1.我们先要找到discuz安装目录下的这份文件 /source/class/class_core.php,这份文件,
然后我们使用物理的绝对路径,记住了哦,绝对路径,不是网址,包含它。
2.ob_clean(); 这里的意思是暂停 gzip,用gzip会导致运行失败,原因不清楚。
3.然后就开始加载discuz了。
4.加载完成后,ob_start("ob_gzhandler"); 这句再把gzip开回来。
print_r($_G);
这个$_G数组里就有很多有用的信息。
不过我还是建议你,取出对你有用的数据:
比如:当 $_G['uid'] 非0的时候,就是用户已经登录了。$_G['username']则是用户的名字。
这样,我们就知道用户是否已经登录了discuz系统。
用完数据后,还是unset($_G);把,省的有啥问题..
截图如下: