Discuz!技术专栏
本专栏专门发布Discuz!网站运营、二次开发、插件开发、Discuz!问题修复等相关文章!
土著人宁巴
了解我的人都知道了,不了解我的人也没必要知道
展开
-
解决教程:您的管理面板已经锁定!请在 xxx 秒以后重新访问管理中心
访问数据库,用phpmyadmin或者Navicat for MySQL,或者用主机商提供的面板,进入数据库,找到数据表pre_common_admincp_session。显然,我们作为站长,不可能等24小时再去登录后台!找到您的uid对应的一行数据,删除即可!那么如何解决这个问题呢?原创 2023-01-02 10:09:36 · 1355 阅读 · 1 评论 -
Discuz有很多版块时,后台经常发生数据无法提交保存的情况解决方法
很多Discuz!站长遇到这样一个问题,当网站创建了很多版块的时候,在版块设置页面,全局SEO设置页面等等,会出现无法提交无法保存数据的情况!这是由于每增加一个版块,就会在上述页面增加多个表单项,提交的时候同时提交的POST元素就超出了PHP的默认最大限制了!解决办法:就是修改php配置文件php.ini,搜索max_input_vars将后面的数字,设置为10000,保存,重启web服务,如果还不行,继续加大!原创 2022-06-01 12:01:24 · 871 阅读 · 0 评论 -
Discuz悬赏主题确定答案自动变更分类的方法
很多站长系统对论坛中的悬赏主题在确定了最佳答案时自动将主题分类变更成“已解决”或其他指定分类!解决方法如下修改文件:source\module\forum\forum_misc.php找到代码updatemembercount($post['authorid'], array($_G['setting']['creditstransextra'][2] => $thread['price']), 1, 'RAC', $_G['tid']);在下方第二行C::t('forum_th原创 2022-06-01 11:28:43 · 730 阅读 · 0 评论 -
Discuz后台隔一段时间操作就要重新输入密码的问题解决方法
这是由于Discuz!安全机制设定的,后台登录状态有个生命周期,默认为30分钟。如果需要延长,可以自行修改:source\class\discuz\discuz_admincp.php找到var $sessionlife = 1800;后面的数字,单位:秒,加大即可...原创 2022-03-06 09:37:20 · 959 阅读 · 0 评论 -
新手站长如何快速查看心仪的网站使用的什么模板和插件?
此教程专给新入行的站长或者不懂什么技术的小白站长看的,大神请忽略!很多站长看见别人的网站模板很漂亮,或者某个插件的功能很酷,想去应用中心下载安装,但是又不知道如何在应用中心找到对应的模板和插件,本教程提供一个简单的方法:查找模板的方法:1.打开目标网站,右键->选择查看网页源码;2.在源码页面,搜索“template/”,如截图所示,后面的一串字符(wekei_forum)就是模板的ID:3.在应用中心打开页面https://addon.dismall.com/templates原创 2021-03-10 09:20:39 · 3690 阅读 · 1 评论 -
Discuz!开启版块子域名后,系统不支持https://的问题解决
Discuz!版块绑定子域名,默认是http://的,当网站开启了版块子域名,又同时启用了https://,因为https://页面和http://页面直接提交数据,就经常会遇到发帖或者回复无法正常进行的问题。先总结一个简单的方法来解决这个问题:修改文件:source\function\function_core.php找到:function output_replace($content) {在这个函数最后return $content;的上一行加上代码$content=str_repl原创 2021-01-17 15:15:57 · 1727 阅读 · 0 评论 -
Discuz!无法连接阿里云RDS数据库代理问题的处理方案
很多站长在使用RDS开启了数据库代理之后,使用数据库代理连接发现一只是无法连接的(1045 notconnect)。经过仔细阅读阿里云数据库代理文档:https://help.aliyun.com/document_detail/138705.html?spm=a2c4g.11186623.6.781.6b331da0caXxfV发现问题出现主要是阿里云数据库代理不支持“数据库独享代理暂不支持压缩协议”,如图:而discuz数据库连接默认使用了MYSQL_CLIENT_COMPRES..原创 2020-06-23 20:33:36 · 24073 阅读 · 0 评论 -
Discuz!门户文章相关阅读随机排序修改方法
找到文件:source\module\portal\portal_view.php找到如下代码$article['related'] = array();if(($relateds = C::t('portal_article_related')->fetch_all_by_aid($aid))) { foreach(C::t('portal_article_title')...原创 2020-05-08 14:14:49 · 27989 阅读 · 0 评论 -
Discuz!教程之主题设置图片封面之后不自动跳转回去的问题修改
找到文件\source\module\forum\forum_ajax.php搜索set_cover_succeed将showmessage('set_cover_succeed', '', array(), array('alert' => 'right', 'closetime' => 1));改为showmessage('set_cover_succeed', '原创 2017-09-04 15:32:47 · 8267 阅读 · 0 评论 -
Discuz!教程之帖子摘要(简介)截取函数messagecutstr()详解
当我们在二次开发Discuz的时候,经常需要调用帖子的摘要或者简介,这里可以使用Discuz自带的内容处理函数messagecutstr()来处理:函数定义位置:\source\function\function_post.php使用前请添加 include_once libfile('function/post');来引入函数messagecutstr($str, $length原创 2017-09-07 09:59:30 · 8783 阅读 · 0 评论 -
Discuz!运行日志记录函数runlog详解
在discuz!的\data\log\目录下,我们会看到很多格式如YYYYMM_XX.php的文件(如下图所示),打开文件我们就会看到很多操作日志,这些日志怎么生成的呢,今天我们就来看看Discuz!运行日志记录runlog函数runlog函数定义文件 \source\function\function_core.phpfunction runlog($file, $m原创 2017-04-01 13:30:24 · 11960 阅读 · 0 评论 -
Discuz!后台程序目录/source/admincp/下目录及文件功能详解
不管是做网站运营还是做discuz二次开发都需要对discuz后台程序有一定的了解,本文就向大家介绍其后台程序目录/source/admincp/目录下目录及文件功能:/source/admincp/后台管理/source/admincp/cloud/云平台项目/source/admincp/menu/后台扩展菜单目录/source/admincp/moderate/审核数原创 2017-04-02 19:59:28 · 8527 阅读 · 0 评论 -
Discuz!开发之写入文件缓存
Discuz!拥有一套良好的缓存机制。不管是内存缓存、数据库缓存还是文件缓存,都做的非常优秀!当开发的功能需要大量的或者频繁的在数据库里读取时,而且数据库查询语句很复杂时,如果用户刷新一次页面就读取一次,那么服务器是受不了的。所以适当的将部分数据缓存下来是很有必要的。今天就给大家介绍一下如何操作文件缓存:先看看文件缓存函数的定义,文件:/source/function/functi原创 2017-04-03 18:28:33 · 5564 阅读 · 2 评论 -
Discuz!首页去掉版块的最后发表、主题数、总帖数
有些站长为了界面美观或者是为了隐藏某些数据需要将论坛首页版块的最后发表、主题数、总帖数数据删除,这里给大家介绍一种直接修改模板的方法供大家参考:打开template/default/forum/discuz.htm(这里以默认模板为准,如果使用第三方模板里面有/forum/discuz.htm文件则修改第三方模板的,修改方法一致)1.去掉最后发表直接删除以下代码(...之间)原创 2017-04-04 16:27:27 · 11526 阅读 · 1 评论 -
Discuz!更换论坛系统默认头像方法
Discuz!论坛的默认头像一方面不够个性化,另一方面对用户体验也不是最佳,所以很多站长更换论坛的默认头像,下面分享下更换的方法,适合一些小白站长:代替UC目录下的3个图片,默认是uc_server\images目录下noavatar_big.gif、noavatar_middle.gif和noavatar_small.gif3个图片。默认头像有3个头像分别是小48x48、中120x1原创 2017-04-05 09:12:57 · 12903 阅读 · 0 评论 -
Discuz!UCenter创始人密码重置方法
很多人由于不经常进入UCenter,过一段时间之后UCenter创始人密码就忘记了,本文介绍一种修改UCenter创始人密码的方法;打开文件/uc_server/data/config.inc.php找到define('UC_FOUNDERPW', 'c4743ead3c62f0fda4a9e2a85827f097');define('UC_FOUNDERSALT', 'V1OeJ3原创 2017-04-06 11:09:07 · 14061 阅读 · 0 评论 -
Discuz!积分记录表pre_common_credit_log中operation字段含义一览
Discuz!积分记录存在于表pre_common_credit_log中,表结构为:CREATE TABLE `pre_common_credit_log` ( `logid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `uid` mediumint(8) unsigned NOT NULL DEFAULT '0', `原创 2017-03-22 11:25:50 · 6933 阅读 · 0 评论 -
Discuz!附件图片、头像图片、相册图片存储规则详解
头像规则用户uid为:80629对应头像地址:http://域名/uc_server/data/avatar/000/08/06/29_avatar_middle.jpg (中等尺寸)头像地址生成规则:$dir=DISCUZ_ROOT.'/uc_server/data/avatar/'.substr($uid,0,3).'/'.substr($uid,3,2).'/'.subs原创 2017-03-27 21:36:08 · 10548 阅读 · 3 评论 -
Discuz!让水印平铺的修改方法
修改文件:\source\class\class_image.php修改原理:计算水印大小和图片大小,每次偏移一个水印的位置重复打水印;由于discuz支持png和gif两种水印,因此本方法涉及两处修改:修改1属于支持png水印,修改2属于支持gif水印;修改1:大概第475行原始代码if($this->param['watermarktype'][$type] == 'png原创 2017-03-28 10:17:31 · 5831 阅读 · 0 评论 -
Discuz!修改CC攻击防御机制attackevasive,实现忽略指定ip段和搜索引擎不受影响
在discuz的config/config_global.php配置文件中可以配置attackevasive参数开启CC 攻击防御$_config['security']['attackevasive'] = 0; // CC 攻击防御 1|2|4|8当你的站点发现被CC攻击时,你也可以在config中打开CC攻击防御,该防御有1/2/4/8四种防御方式,每个数字的意义为:0表示关闭此功原创 2017-03-28 10:36:35 · 5689 阅读 · 0 评论 -
Discuz!论坛搬家或升级之后访问出现Cloud file not exists!解决方法
很多站长在论坛搬家或者升级之后访问论坛出现如下错误原因是搬家或者升级之后插件文件(\source\plugin\)没有拷贝回去,按照标准搬家或升级流程搬家或升级之后应当将附件文件、uc_server中的头像文件、插件文件都拷贝回去;希望本文对大家有帮助,谢谢!原创 2017-03-30 09:24:30 · 9337 阅读 · 0 评论 -
Discuz!图片附件获取缩略图路径makethumbpath以及生成缩略图方法
定义文件:\source\class\helper\helper_attach.php方法定义: public static function makethumbpath($id, $w, $h){ $dw = intval($w); $dh = intval($h); $_daid = sprintf("%09d", $id); $dir1 = subst原创 2017-03-30 09:27:58 · 11312 阅读 · 0 评论 -
Discuz!中最高在线人数更新和存储机制详解以及如何修改最高在线人数
查看模板文件 \template\default\forum\discuz.htm显示历史最高在线人数的代码为:{lang index_mostonlines} $onlineinfo[0] {lang on} $onlineinfo[1].即 最高记录是 xx 于 YYYY-MM-DD这里在线记录信息存储于数组$onlineinfo那么数组$onlineinfo怎么来原创 2017-03-30 22:13:08 · 5752 阅读 · 0 评论 -
Discuz!如何实现为版块设定自定义logo,实现不同的版块不同的logo!
操作之前,我们先看看模板文件中(\template\default\common\header.htm)显示logo的位置的代码:{$_G['style']['boardlogo']}$_G['setting']['navlogos'][$mnid]此处可以看出,除了在菜单项中自定义了logo之外,页面上的logo都是通过$_G['style']['boardlogo']变量输出;从此原创 2017-03-31 15:18:36 · 9150 阅读 · 0 评论 -
Discuz!数据库操作DB类和C::t类介绍
类定义文件DB类:文件\source\class\class_core.phpclass DB extends discuz_database {} discuz_database类定义文件\source\class\discuz\discuz_database.phpDB类封装常用方法:DB::table($table) //获取带前缀的表名DB::delete原创 2017-04-01 07:37:28 · 13596 阅读 · 0 评论 -
Discuz!修改注册用户名长度限制的方法
在Discuz!中,系统默认的用户名长度是 3-15字节,但有一些网站可能会因为各种原因需要将用户名长度的限制做一些修改。所以结合之前的一些经验,完成了修改 注册用户名长度 的办法详细如下: 1、修改注册类和用户名检查提示打开 /source/class/class_member.php 文件找到$usernamelen = dstrlen($username);if($us原创 2017-04-01 07:54:46 · 10750 阅读 · 2 评论 -
Discuz!发送邮件sendmail函数使用介绍
方法定义文件 \source\function\function_mail.phpsendmail($toemail, $subject, $message, $from = '')参数说明$toemail:接收邮箱$subject:邮件标题$message:邮件内容$from:邮件发送者,一般留空,默认为discuz后台所配置;使用方法举例:require原创 2017-04-01 13:21:52 · 11119 阅读 · 2 评论 -
Discuz!发送系统通知方法notification_add解析
方法定义位置:source\function\function_core.php代码如下:function notification_add($touid, $type, $note, $notevars = array(), $system = 0) { return helper_notification::notification_add($touid, $type,原创 2017-03-21 09:52:35 · 7624 阅读 · 1 评论 -
Discuz! 内存缓存机制与使用方法
内存级缓存 缓存层的引入是为了解决MYSQL自身对高并发处理的性能瓶颈,目前产品缓存层采用主流的Key-Value对形式,内存级的缓存产品很多,支持的内存优化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis 五种,优化系统将会依据当前服务器环境依次选用接口,单服务器环境中推荐使用APC,多服务器原创 2017-03-21 10:19:03 · 6178 阅读 · 0 评论 -
Discuz!积分操作common_credit_log 表中的 operation 缩写的取值对应的含义
common_credit_log 表中的 operation 的取值对应的含义定义如下: 简写 关联id 含义 TRC common_task.taskid 任务奖励积分 RTC原创 2017-03-21 10:23:02 · 4165 阅读 · 0 评论 -
discuz!帖中图片附件添加alt描述的快捷方法
大家都是知道给图片标签添加alt描述对于SEO的重要性,但是作为国内使用范围最广的discuz!论坛程序却默认没有添加alt描述,现在本文介绍一种简单的方法来帮助站长快速设置图片alt属性,方法如下:打开模板文件:\template\default\forum\discuzcode.htm找到如下代码(discuz! X3.2大概在257行左右,其他版本请自行搜索):原创 2017-03-21 10:27:44 · 6118 阅读 · 1 评论 -
Discuz!插件模板实现DIY的方法
Discuz系统模板里的DIY功能相信使用过该系统的人都非常熟悉了,那么怎么在开发插件的时候再插件的模块里面实现DIY功能呢,本文将介绍具体的实现方法:示例插件:nimba_diypage/nimba_diypage/page.inc.phpnimba_diypage/template/page.htm模板page.htm代码{subtemplate common/原创 2017-03-21 11:32:02 · 7314 阅读 · 0 评论 -
Discuz!论坛系统模板目录结构注释说明(以default模板为例)
/template/default/common/ 公共模板目录全局加载/template/default/common/block_forumtree.htm DIY论坛树形列表模块/template/default/common/block_thread.htm DIY帖子模块调用文件/template/default/common/block_userinfo.htm 未原创 2017-04-06 11:33:56 · 6890 阅读 · 0 评论 -
Discuz!您当前的访问请求当中含有非法字符,已经被系统拒绝解决办法
Discuz!系统的_xss_check()函数原本的意义是为了论坛安全,防止XSS攻击,一般网站使用是不会出现什么问题的,但是有些网站要接入第三方接口,当第三方接口向本站post数据的时候就会报"您当前的访问请求当中含有非法字符,已经被系统拒绝",本文介绍一种简单的修改方法避免此错误。解决方案如下:\source\class\discuz的discuz_application.php原创 2017-04-06 11:42:09 · 38484 阅读 · 0 评论 -
Discuz!uc.key泄露导致代码注入漏洞uc.php的解决方法
漏洞名称:Discuz uc.key泄露导致代码注入漏洞漏洞描述:在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。最近用某云服务器的朋友比较多,都来反馈~这个漏洞,现在把修复方案分享下吧打开/api/uc转载 2017-04-06 11:55:42 · 14780 阅读 · 2 评论 -
Discuz!字符串裁剪函数cutstr介绍
函数定义位置:\source\function\function_core.php函数定义:function cutstr($string, $length, $dot = ' ...') { if(strlen($string) <= $length) { return $string; } $pre = chr(1); $end = chr(1); $string原创 2017-04-07 13:25:09 · 4284 阅读 · 0 评论 -
Discuz!电脑版、手机版去除标题title中的Powered by Discuz!
电脑版:打开 /template/default/common/header_common.htm 文件找到$navtitle - $_G['setting']['bbname'] - Powered by Discuz!删除Powered by Discuz!即可手机版之标准版:打开 /template/default/mobile/common/header.htm原创 2017-04-07 13:38:21 · 9503 阅读 · 1 评论 -
Discuz!开发之插件页面title、keywords、description等SEO设置
实例插件/test//test/page.inc.php前台访问地址为:http://域名/plugin.php?id=test:page如果当前插件模板里引用频道公共头部,seo相关的title、keywords、description等设置就成了默认的,这样对搜索引擎非常不友好,本篇文章主要介绍怎么在插件中单独设置discuz插件修改title、keywords、descr原创 2017-04-07 14:28:51 · 6899 阅读 · 0 评论 -
Discuz!开发之开启插件开发者模式
打开 config/config_global.php 文件,在文件结尾添加以下代码开启插件设计者模式。$_config['plugindeveloper'] = 1;也可以:$_config['plugindeveloper'] = 2;这里1和2的区别是:1为开启开发者模式,后台可以添加和编辑插件;2除了开启开发者模式之外,前台还好显示插件嵌入点,如下图所示:原创 2017-04-07 15:04:01 · 9429 阅读 · 0 评论 -
阿里云提示 Didcuz memcache+ssrf GETSHELL漏洞修复方法
近期很多使用阿里云的站长收到了阿里云给出的漏洞消息,漏洞名称如下:Discuz memcache+ssrf GETSHELL漏洞这里给大家提供一个简单的修复方案!首先找到这个文件source/function/function_core.php搜索代码:function output_replace($content) { global $_G; if(define原创 2017-04-07 15:52:36 · 2928 阅读 · 0 评论