jekeyhui99 发表于 2015-10-22 10:47:29

discuz X3获取当前登录的用户信息

<?
//这个只是获取当前用户账号以及积分的方法,同样你修改SQL语句可以实现discuz所有数据处理的功能

require '../source/class/class_core.php';//引入系统核心文件
$discuz = & discuz_core::instance();//以下代码为创建及初始化对象
$discuz->cachelist = $cachelist;
$discuz->init();//以上是调用discuz公共执行类等核心代码
$discuz_user= $_G['username'];
echo "当前账户:".$discuz_user;


$connect=mysql_pconnect("localhost","root","123456789");//mysql数据库域名,账户,密码
if(!mysql_select_db('discuz_db',$connect)) //discuz 数据库名
ide("数据库连接失败!");
//构造查询的SQL语句,查询积分
$sql="SELECT * FROM dz_common_member WHERE username='".$discuz_user."'";
$res = mysql_query($sql);//执行查询语句
$row=mysql_fetch_assoc($res);//将结果转换成数组
echo "积分:".$row["credits"];//显示积分字段credits的内容
echo mysql_error();//发生错误后显示错误信息
?>
***********************************
<?php
include('E:\web\www.oicqzone.com\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);把,省的有啥问题..


页: [1]
查看完整版本: discuz X3获取当前登录的用户信息