jekeyhui99 发表于 2015-10-29 07:58:09

php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码

前面有一篇文章讲过自己从cookie和discuz数据库中取用户名、用户组、用户ID等信息,但那个并不一定准确,因为discuz登录时会使用COOKIE中的auth值来动态登录,而cookie信息是滞后的,所以获取到的信息并不完全准确。
这里讲一个简单的方法,直接使用discuz的include/common.inc.php来登录。


include_once("../discuz/include/common.inc.php");
$CTDF_USERINFO = array();
$CTDF_USERINFO["sid"] = $sid;
$CTDF_USERINFO["uid"] = $discuz_uid;
$CTDF_USERINFO["user"] = $discuz_user;
if ($discuz_uid == 0)
{
$CTDF_USERINFO["user"] = "guest_" . $sid;
}
$CTDF_USERINFO["groupid"] = $groupid;
/**
* clear discuz variables
*/
$reserved_arr = array("GLOBALS", "_POST", "_GET", "_COOKIE", "_FILES", "_SERVER", "_ENV", "_REQUEST", "CTDF_USERINFO", "reserved_arr");
foreach ($GLOBALS as $key => $value)
{
if (!in_array($key, $reserved_arr))
{
unset($GLOBALS[$key]);
}
}
unset($reserved_arr, $value);

将上面这段代码放在任何程序的开头处,其目的是不影响自定义变量的使用。这样就将登录信息读取到$CTDF_USERINFO数组中了。

还是这个比较简单哦,找了很久,这次就爽了
页: [1]
查看完整版本: php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码