您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

ThinkPHP怎么和Discuz整合

信品2025-07-21Discuz教程已有人查阅

导读ThinkPHP + Discuz 整合方法以下是Discuz6的整合方法,discuz5请按照里面的说明进行相应的修改,也可以使用了。1.在项目的action目录下信件PublicAction.class.php。这样写:

ThinkPHP + Discuz 整合方法
以下是Discuz6的整合方法,discuz5请按照里面的说明进行相应的修改,也可以使用了。
1.在项目的action目录下信件PublicAction.class.php。这样写:
class PublicAction extends Action
{
function login()
{
$this->display();
if(!isset($_SESSIONC('USER_AUTH_KEY'))||$_SESSIONC('USER_AUTH_KEY')==0) {
$this->display();
return ;
}else {
redirect(__APP__);
}
}
function index()
{
//如果通过认证跳转到首页
redirect(__APP__);
}
function checkLogin()
{
// 这里使用用户名、密码和状态的方式进行认证。这里是discuz6.1,discuz5的加密方式不一样。用discuz5的话你需要修改下面这一句。
//注意!!!这里直接把$_POST['name']和$_POST['password']放到查询语句中是不安全的。请先进行处理!我是自己处理的,这里没有贴。我在找ThinkPHP中的处理函数,还没有找到。
$authInfo = RBAC::authenticate("`username`='".$_POST['name']."' AND `password` = md5(concat(md5('".$_POST['password']."'),`salt`))");
if(false === $authInfo) {
echo '登录失败,请检查用户名和密码是否有误!';
}else {
// 设置认证识别号
session_register(C('USER_AUTH_KEY'));
session_register('loginid');
$_SESSION[C('USER_AUTH_KEY')] = $authInfo["uid"]; // 这里用户表的id字段
$_SESSION["loginid"] = $authInfo["username"];// 这里用户表的用户名字段
//获取并保存用户访问权限列表
RBAC::saveAccessList();
dump($_SESSION);
echo strtoupper(APP_NAME)." ".strtoupper(MODULE_NAME)." ".strtoupper(ACTION_NAME);
}
}
}
2.然后在模板中新增登陆模板,路径为Tpl/default/Public/Login.html这里把官方教程中的模板贴出来,省的再去找了:
<body>
<form method=post name="login" id="form1" action="__URL__/checkLogin">
<div class="tcenter hmargin">
<table id="checklist" class="login shadow" cellpadding=0 cellspacing=0 >
<tr><td height="5" class="toptd" ></td></tr>
<tr class="row" ><th class="tcenter space"> 系统管理登录 </th></tr>
<tr><td height="5" class="toptd" ></td></tr>
<tr class="row" ><td class="tcenter"><div id="result" class="result none"></div></td></tr>
<tr class="row" ><td class="tright" width="25%">帐 号:</td><td><input type="text" class="medium bleftrequire" check="require" warning="请输入帐号" name="name"></td></tr>
<tr class="row" ><td class="tright">密 码:</td><td><input type="password" class="medium bleftrequire" check="require" warning="请输入密码" name="password"></td></tr>
<tr class="row" ><td class="tcenter" align="justify">
<input type="button" value="刷 新" onclick="fleshverify()" class="submit small"><input type="submit" value="登 录" class="submit small hmargin">
<input type="reset" value="重 置" class="submit small">
</td></tr>
<tr><td height="5" class="bottomtd" ></td></tr>
</table>
</div>
</form>
</body>
3.在Model目录中新增一个UserModel.class.php
class UserModel extends Model
{
protected $trueTableName = 'uc_members';//这里是ucenter的用户表的表名。如果你在uc中修改了前缀,就把表名的uc部分修改成自己的。
}
4.可以了进行登录了。就这些。昨天看ThinkPHP的文档看了一整天。TP不是一般的强大啊。个人感觉比FLEAPHP强很多。
如果你使用的是discuz5版本,由于没有ucenter,需要修改两个部分。
一是 PublicAction.class.php中的
$authInfo = RBAC::authenticate("`username`='".$_POST['name']."' AND `password` = md5(concat(md5('".$_POST['password']."'),`salt`))");
二是 UserModel.class.php 中的'uc_members'改成相应数据表。
5. 下载RBAC。
在使用中除了上面的还不够。还要进行RBAC赋权的操作。这里你需要下载一个官方的RBAC示例,推荐放在和你的程序平级的目录。
6.修改RBAC
Model下的UserModel.class.php内容是下面的代码。这个和前面的UserModel.class.php一致。可以直接复制过来
class UserModel extends Model
{
var $trueTableName='uc_members';
}
还要修改GroupAction.class.php中的function user()
代码如下:
function user()
{
//读取系统的用户列表
//以下三句请根据实际情况进行修改
$userDao = D("User");
$list = $userDao->findAll('','uid,username');//我们修改了这里
$userList = $userDao->getCols($list,'uid,username');//还有这里,其他的不要动了。
$groupDao = D("Group");
$list = $groupDao->findAll('','id,name');
$groupList = $groupDao->getCols($list,'id,name');
$this->assign("groupList",$groupList);
//获取当前用户组信息
$groupId = isset($_GET['id'])?$_GET['id']:'';
$groupUserList = array();
if(!empty($groupId)) {
$this->assign("selectGroupId",$groupId);
//获取当前组的用户列表
$list = $groupDao->getGroupUserList($groupId);
$groupUserList = $groupDao->getCols($list,'id,id');
}
//$userList = array_diff_key($userList,$groupUserList);
$this->assign('groupUserList',$groupUserList);
$this->assign('userList',$userList);
$this->display();
return;
}
7.现在可以进行分组操作了。

本文标签:

很赞哦! ()

相关源码

  • 手机软件APP游戏软件下载网站Pbootcms模板(自适应)基于PbootCMS内核深度开发的网站模板,为移动互联网时代打造。无论是手机APP推广、游戏软件展示,还是各类企业官网需求,本模板都能通过简单的图文替换实现行业无缝切换查看源码
  • (自适应响应式)电子数码科技产品介绍带留言网站模板下载为电子产品企业设计的展示系统,集成智能产品对比器、参数规格表和展示模块。支持消费电子、智能设备等多级分类展示,内置产品技术参数数据库。查看源码
  • (自适应响应式)家电维修清晰服务网站pbootcms模板免费下载本模板基于PbootCMS内核开发,为维修服务类企业打造,特别适合家电维修、设备维护等行业使用。通过简洁直观的界面设计,帮助企业快速搭建专业级服务平台,实现线上业务高效管理。查看源码
  • (自适应)简繁双语响应式服装服饰西装工装校服定制pbootcms模板本模板基于PbootCMS内核开发,为服装服饰行业量身打造,尤其适合西装定制、工装生产、校服订制等服装类企业使用。模板采用响应式布局设计,确保在手机、平板、电脑查看源码
  • 响应式帝国cms7.5NBA黑色体育资讯模板下载本模板为体育新闻媒体、报道机构设计,采用帝国CMS7.5内核开发,具备完整的资讯发布、体育日历、数据展示功能。响应式布局确保在手机端呈现实时资讯和图文内容查看源码
  • (自适应)pbootcms家政服务保洁保姆打扫卫生网站模板下载本模板基于PbootCMS内核开发,为家政服务企业量身定制。设计风格温馨亲切,突出家政行业的专业与贴心服务特性,多方位展示企业服务项目与优势。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐