好的DedeCMS 整合记事狗(Jishigou)社区教程
记事狗是一款基于PHP+MySQL的开源社区系统,与DedeCMS整合可以实现用户统一登录、数据互通等功能,以下是详细的整合步骤:

(图片来源网络,侵删)
准备工作
-
环境要求:
- PHP 7.0+(记事狗对PHP版本要求较高)
- MySQL 5.6+
- DedeCMS 已安装完成(建议V5.7以上版本)
- 记事狗最新版下载:记事狗官网
-
备份:
- 备份DedeCMS数据库和文件
- 备份记事狗数据库和文件(如果已安装)
整合步骤
安装记事狗
- 将记事狗程序上传到网站根目录的
bbs子目录(或其他自定义目录) - 访问
http://你的域名/bbs/install/按向导安装 - 安装时选择全新安装(非升级模式)
- 安装完成后不要删除安装目录,后续可能需要修改配置
数据库整合(统一用户表)
核心思路:让记事狗使用DedeCMS的dede_member表作为用户表
修改记事狗配置:
- 打开
bbs/config.php,修改数据库连接配置:$db_config = array( 'host' => 'localhost', // 数据库地址 'user' => '数据库用户名', // 数据库用户名 'pwd' => '数据库密码', // 数据库密码 'name' => '数据库名', // 与DedeCMS同数据库 'pre' => 'jishigou_', // 记事狗表前缀(避免与dede_冲突) );
修改用户表关联:
-
方法1(推荐):通过修改记事狗的登录逻辑
(图片来源网络,侵删)-
打开
bbs/source/class/class_user.php -
找到
login()方法,修改SQL查询条件:// 原代码可能类似 $query = "SELECT * FROM {$this->table} WHERE username='$username'"; // 修改为查询dede_member表 $query = "SELECT * FROM dede_member WHERE uname='$username'";
-
-
方法2:创建视图(需数据库权限)
CREATE VIEW jishigou_members AS SELECT mid AS uid, uname AS username, pwd AS password, email AS email, `rank` AS group_id, jointime AS reg_time, uptime AS last_login_time FROM dede_member;
同步登录(Cookie共享)
-
修改DedeCMS登录处理: 打开
/member/index_do.php,在登录成功后添加:// 在第120行左右找到登录成功代码后添加 setcookie('jishigou_auth', $authstr, time()+3600*24, '/'); -
修改记事狗登录处理: 打开
bbs/source/class/class_user.php,在登录成功后添加:// 在登录成功代码后添加 setcookie('dede_loginuser', $username, time()+3600*24, '/');
用户同步注册
- 修改DedeCMS注册:
打开
/member/reg_new.php,注册成功后添加:// 注册成功后自动同步到记事狗 $jishigou_user = array( 'uid' => $mid, 'username' => $uname, 'password' => $pwd, 'email' => $email, 'group_id' => 0, 'reg_time' => time() ); $db->SetQuery("INSERT INTO jishigou_members (uid, username, password, email, group_id, reg_time) VALUES ({$mid}, '{$uname}', '{$pwd}', '{$email}', 0, ".time().")"); $db->Query();
同步退出
-
DedeCMS退出: 打开
/member/index.php,在退出代码后添加:setcookie('jishigou_auth', '', time()-3600, '/'); -
记事狗退出: 打开
bbs/logout.php,在退出代码后添加:setcookie('dede_loginuser', '', time()-3600, '/');
常见问题解决
用户组不同步
- 解决方案:
创建用户组映射表:
CREATE TABLE dede_group_map ( dede_groupid INT, jishigou_groupid INT, PRIMARY KEY (dede_groupid) ); INSERT INTO dede_group_map VALUES (1, 1), (2, 2), (3, 3); // 根据实际情况调整
密码加密方式不同
- 记事狗:使用
md5(md5($password).$salt) - DedeCMS:使用
md5($password) - 解决方案:
修改记事狗的密码验证逻辑(
bbs/source/class/class_user.php):// 修改密码验证代码 $password = md5(md5($password).$user['salt']); $db_password = $user['password']; if ($password != $db_password) { // 验证失败 }
UTF-8编码问题
- 确保DedeCMS和记事狗都使用UTF-8编码
- 如果出现乱码,修改数据库连接字符集:
// 在config.php中添加 $db_config['charset'] = 'utf8mb4';
安全注意事项
-
文件权限:
- 设置
bbs/config.php权限为644 - 删除
bbs/install/目录
- 设置
-
SQL注入防护:
- 所有涉及用户输入的SQL查询必须使用参数化查询
- 记事狗已自带防护,但整合时需额外检查
-
定期更新:
- 关注DedeCMS和记事狗的官方更新
- 及时修补安全漏洞
测试验证
-
统一登录测试:
- 在DedeCMS注册账号 → 尝试用该账号登录记事狗
- 在记事狗注册账号 → 尝试用该账号登录DedeCMS
-
数据同步测试:
- 在DedeCMS修改用户资料 → 检查记事狗是否同步
- 在记事狗发帖 → 检查DedeCMS是否显示(需额外开发)
进阶功能(可选)
-
帖子同步到DedeCMS:
- 开发插件将记事狗帖子推送到DedeCMS指定栏目
- 使用定时任务或钩子机制实现
-
单点登录(SSO):
使用JWT或OAuth2.0实现更安全的跨域认证
-
用户中心整合:
通过iframe或API调用方式将记事狗嵌入DedeCMS用户中心
重要提示:整合前务必在测试环境验证,避免影响线上站点,建议使用版本控制(如Git)记录每次修改,便于回滚。
如果遇到具体问题,可以提供错误日志或截图,我会进一步协助解决。 """
是完整的DedeCMS整合记事狗社区的教程,涵盖了从环境准备到进阶功能的全部步骤,实际操作中可能因版本差异需要调整代码,建议在测试环境验证后再部署到生产环境。
