Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz!使用问题的整理(不断更新~)

[复制链接]
下砂 发表于 2006-11-22 23:34:38 | 显示全部楼层 |阅读模式
1.解决验证码看不清的问题

方法如下:将\images\common\目录下的以下文件替换成你认为好看的即可
number0.gif       数字“0“的图片
number1.gif       数字“1“的图片
number2.gif       数字“2“的图片
number3.gif       数字“3“的图片
number4.gif       数字“4“的图片
number5.gif       数字“5“的图片
number6.gif       数字“6“的图片
number7.gif       数字“7“的图片
number8.gif       数字“8“的图片

注意一点: 就是配置php.ini的时候记得开启gd的支持,也就是去掉下面语句前面的;
;extension=php_gd2.dll

2.水印的实现方法
首先确认你的空间支持水印功能其次察看SS或者论坛的后台找到水印图片的位置用你作好的水印图片上传覆盖掉空间那个(菜鸟级别的可以直接从空间下下来自己修改,完后上传覆盖)最后开启水印功能


3.会员注册字符的3限制修改

论坛根目录下的 register.php  中修改
if(strlen($username) < 3)

4.Discuz! 5.0.0中如何实现音频.视频

1.必须在用户组对应赋予不同级别用户开启允许使用自定义 Discuz!代码这一项(好像缺省应该是版主以上用户已经开启)。2.贴子管理”——“Discuz代码”——具体新增定义使用这些代码,然后已设定有权使用自定义Discuz代码的用户才可以使用。

5.怎么修改精华1、精华2、精华3名称

修改语言包,在模板目录下找到 admincp.lang.php打开,找到

        'forums_digest_one' => '精华I',

        'forums_digest_two' => '精华II',

        'forums_digest_three' => '精华III'

修改成自己想要的

6.如何修改注册协议阅读时间
templates/default/register.htm
搜索
var secs = 10;
如果要改成5秒,就把10改成5


7、部分版块隐藏的设置:
进入后台-----论坛管理-------编辑论坛------编辑你所想隐藏的论坛,在“论坛权限”下面设置访问密码(没必要就不设)、访问用户组(不允许的不打钩)。【这种设将在首页会显示为“秘密论坛”字样,若要隐藏,在“注册与访问控制(5.5在界面与显示方式)”->隐藏无权访问的论坛”:选是】

全部版块进入可以看到主题,但点击进去却显示游客无权访问页面的设置:

(1)首先,所有论坛版块都不能设访问权限,即默认留空(全不打钩)。
(2)进入后台-----用户管理-------用户组-------游客(页面下拉,游客组)-------详情-------阅读权限:0

说明:默认的帖子和附件查看权限是1。


8.如何修改星星上的"Rank  18" 修改成 "级别  18 "?
      
修改 include/global.func.php 搜索:
  1. $alt = 'alt="Rank: '.$num.'"';
复制代码
改为
  1. $alt = 'alt="级别: '.$num.'"';
复制代码

9.去除会员的"删除本帖"功能
打开templates/default/post_editpost.htm文件,查找

<!--{if $isorigauthor}--><input class="checkbox" type="checkbox" name="delete" value="1"> <b>{lang post_delpost}</b><!--{if $thread['special'] == 3 && $isfirstpost}-->{lang reward_price_back}<!--{/if}--><br><!--{/if}-->

删除即可,此修改只是实现了页面上的修改,也可以解决会员删帖这个问题了

10.restore.php恢复数据出现错误的解决方法
  1. 从本地恢复数据 - 检查数据文件: 数据文件 forumdata/061030_yOM35Yo7-5.sql 存在检查 ... 成功 数据文件 forumdata/061030_yOM35Yo7-5.sql 可读检查 ... 成功 从本地读取数据 ... 成功 数据文件 forumdata/061030_yOM35Yo7-5.sql 格式检查 ... 成功 拆分操作语句 ... 成功 正在恢复数据,请等待 ... Warning: dbstuff::require_once(DISCUZ_ROOT./include/db_mysql_error.inc.php) [function.dbstuff-require-once]: failed to open stream: No such file or directory in E:\Host\scpolice.cn\bbs\include\db_mysql.class.php on line 127
复制代码

解决方法很简单,看下面
include\db_mysql.class.php 里面
查找
  1. function halt($message = '', $sql = '') {

  2. require_once DISCUZ_ROOT.'./include/db_mysql_error.inc.php';
复制代码
在require_once DISCUZ_ROOT.'./include/db_mysql_error.inc.php';的前面加  //
就是
问题解决
  1. function halt($message = '', $sql = '') {

  2. //require_once DISCUZ_ROOT.'./include/db_mysql_error.inc.php';
复制代码


11.repair.php修复数据库工具

https://discuz.dismall.com/viewthread.php?tid=167141&highlight=repair.php%D0%DE%B8%B4

https://discuz.dismall.com/thread-464865-1-1.html  10#



12.使用repair.php修复数据的方法(
数据表损坏的修复方法(终极完美版!!!!!)
上传repair.php到论坛根目录下,然后在浏览器运行http://你的论坛地址/repair.php
一般点击第一个链接“repair.php?html=1&check=1”就可以修复了,
如果不能修复可以尝试点击第二个连接“repair.php?check=1&iterations=5”
就可以了。
提醒:修复完表操作以后一定记得要从服务器删除这个文件repair.php


13.使用phpmyadmin修复数据的方法
进入论坛数据库,然后选择要修复的表,在页脚下拉框选择“修复”即可
如果您的服务器是独立主机强烈建议使用命令行方式进行修复:
修复前将mysql服务停止。
如果是Win主机,打开命令行方式,然后进入到mysql的/bin目录。
执行myisamchk -r d:\mysql\data\discuz\*.MYI
其中d:\mysql\data\discuz\换成您的数据库所在路径。
如果是类Unix主机,直接使用myisamchk -r 数据库目录\*.MYI
即可。


14.如何把在线的Guest改为自己论坛的名字
打开 index.php,查找:

Guest

替换为您需要的,如:游客


15.Discuz! 代码不支持mailmagic://怎样解决?

修改 include/discuzcode.func.php

1.搜索:
  1. https?|ftp|gopher|news|telnet|rtsp|mms|callto|ed2k
复制代码

改为:
  1. https?|ftp|gopher|news|telnet|rtsp|mms|callto|ed2k|mailmagic
复制代码
2.搜索:
  1. www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/|callto:\/\/|ed2k:\/\/
复制代码

改为:
  1. www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/|callto:\/\/|ed2k:\/\/|mailmagic:\/\/
复制代码

即可



16.在帖子里,大家发的网址无论多长都是完全显示的方法
打开 include\discuzcode.func.php

找到


  1. function cuturl($url) {

  2.         $length = 65;

  3.         $urllink = "<a href=\"".(substr(strtolower($url), 0, 4) == 'www.' ? "http://$url" : $url).'" target="_blank">';

  4.         if(strlen($url) > $length) {

  5.                 $url = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));

  6.         }

  7.         $urllink .= $url.'</a>';

  8.         return $urllink;

  9. }
复制代码


那个$length = 65;就是限制长度的,您可以自行修改!

17.控制面板-編輯個人資料不見了的原因
这是由于在后台扩展设置中通行证,启用了通行证 passport 造成的
关闭passport 后就可以看到编辑個人資料的栏框

18.后台运行记录所对应的文件

Discuz!软件的在设计的时候,对进入后台的一些操作做了记录,这些记录都存放在文件中,放在./forumdata这个目录下面。
这些记录文件会记录15 天以后的运行记录,因此不必担心论坛运行的时间太久,这些文件会特别的大。下面我把这些运行记录具体对应的文件列出来,以便大家做个参考。

密码错误记录 illegallog.php
用户评分记录 ratelog.php
积分交易记录 记录在数据表cdb_creditslog
版主管理记录 modslog.php
勋章授予记录 medalslog.php
禁止用户记录 banlog.php
后台访问记录 cplog.php
系统错误记录 errorlog.php


19.怎样让发帖时在主题上自动加上发帖日期(4.1)
打开模板 viewthread。htm ﹐搜索:  $thread[subject] ﹐然后在后面加入  <!--{eval echo gmdate("$dateformat"﹐ $thread['dateline'] + $timeoffset * 3600)}-->



20.Discuz! 可以在同一个空间装多个吗?
  
若您有多个数据库,可以通过使用不同名的数据库实现;

如果只有一个数据库,在同名数据库下您可以通过使用不同的表名前缀实现多个 Discuz! 论坛的安装。在 config.inc.php 中将 $tablepre = 'cdb_'; 里的 cdb_ 更改为其他字符即可,比如: cdb2_ 等

21.我的论坛突然间在线人数从 200 一下变成 1000 多,游客就有700多,人数还在不断上升,请问这是什么问题啊?


看看他们从哪里来的,如果是从相近的 IP 段来的,那可能是搜索引擎的机器人;

还有一个因素就是与你的 config.inc.php 中 $onlinehold 值设定有关系。如果这个值设置越大表明统计的时间越长,也越不准确。目前为止,在 Web 上查看真实的在线人数在技术上是实现不了的,只能尽可能的接近。这不单单是程序上的问题,还涉及到其他很多方面的因素。在线人数"多",而服务器资源没有太大变化,那就说明这个值一定是不准确的,程序上是计算 $onlinehold 时间内的人数,所以越大人数也越多。

22.论坛顶部出现了一个错误提示:Warning: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression' in d:\discuz\include\common.php on line 223,请问如何解决?
重复打开了 Gzip 压缩,到系统设置里的 Discuz! 选项里关闭 Gzip 压缩即可。

23.为什么不提供管理记录的删除功能?

Discuz! 管理记录用文件保存,为了防止记录被非法删除,系统自动存留 500 条最新的记录,并占用不了很多空间,不需手工删除。如一定要删除,通过 FTP 直接操作 ./forumdata/xxlog.php即可


24.导入数据出现
Warning: shell_exec(): Cannot execute usingbackquotes in Safe Mode in/usr/local/psa/home/vhosts/shoppinglook.com/httpdocs/bbs/admin/database.inc.phpon line 469  错误
这是由于服务器打开了safe_mode(安全模式)为ON,无法执行shell_exec,如果有主机权限  打开php.ini   safe_mode 设置为 off,即可.如果没有主机权限,请联系您的空间商.

数据库常见错误及解决方法

25.数据表损坏的修复方法
https://discuz.dismall.com/thread-235998-1-5.html

26.数据库常见错误信息和解决方法1

论坛常见数据库问题分析及解决方案2

Discuz!常见问题解答》3

使用常见问题收录  4

27.简单修改数据库编码的方法~对乱码说再见(适合免费空间)
https://discuz.dismall.com/thread-243333-1-6.html

28.转移论坛出现数据库乱码的解决办法
https://discuz.dismall.com/thread-374674-1-6.html

29.Got error 28 from table handler (Errno.: 1030)
翻译:读表头产生错误
分析:这个错误是由于数据库所在磁盘空间已满造成的。
解决:清理一下磁盘,腾出一些空间用来运转数据库

30.出现类似错误提示Error:  No Database Selected   Errno.:  1046
因为没有安装成功,MYSQL里没有建立数据库的原因,请重新执行安装程序并且根据提示操作建立数据表。如果证实确实安装了论坛数据库,检查你的config.inc.php有没有配置数据库信息


31.升级中出现1060错误的解决方法
https://discuz.dismall.com/thread-393601-1-3.html

32.Errno.:1062错误的解决方法1
https://discuz.dismall.com/thread-379719-1-2.html
https://discuz.dismall.com/thread-425346-1-1.html

33.出现 Errno: 1062 的解决方法2
https://discuz.dismall.com/thread-296996-1-4.html


34.Errno.: 1064的解决方法
https://discuz.dismall.com/thread-404106-1-1.html
https://discuz.dismall.com/thread-142050-1-3.html
https://discuz.dismall.com/viewthread.php?tid=435300&highlight=1064


35.MYSQL1067错误的解决方法
https://discuz.dismall.com/thread-340110-1-7.html

36.出现1129错误的解决办法:
Discuz! info: Can not connect to MySQL server
Time: 2006-8-8 9:06amScript: /lbbs/index.php
Error: Host '172.128.182.110' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'Errno.: 1129
Similar error report has beed dispatched to administrator before.
Errno.:1129:数据库出现异常,请重启数据库
1.mysql数据库连接数多了,表被锁了,请将windows下的my.ini文件里的max_connections的值重新设置,然后重启mysql。
2.如果还有以上问题,请修复数据表.修复数据表可以用repair.php,也可以利用myisamchk来修复.
repair.php这个文件在Discuz!的../utilities文件夹里,需要上传到服务器的论坛目录下,然后点击链接即可.
MySQL 自带了专门用户数据表检查和修复的工具——myisamchk.更改当前目录到mysql/bin下面,
一般情况下只有在这个下面才能运行
myisamchk命令.常用的修复命令为 myisamchk -r 数据文件目录/数据表名.MYI.

37.登陆论坛报错:
Discuz! info: MySQL Query
ErrorTime: 2006-3-21 11:06pmScript: /logging.php
SQL: SELECT count, lastupdate FROM cdb_failedlogins WHERE ip='61.51.92.242'
Error: Unknown column 'ip' in 'where clause'
程序文件跟数据库有冲突,请使用正确的程序文件上传上去覆盖
An error report has been dispatched to our administrator.
只要用自动登陆的就可以,但是退出后再登陆就报错,是什么原因??答:表cdb_failedlogins 缺少字段ip把这个字段加上就可以了。一般都是因为用户自己安装了一些插件造成的错误。

38.导入数据库时出现 Errno.: 1193 的解决方法
https://discuz.dismall.com/thread-459509-1-2.html

39.数据恢复时出现“SQL: SET NAMES 'gbk'。。。1193”错误的解释
https://discuz.dismall.com/thread-272048-1-4.htmlhttps://discuz.dismall.com/thread-272048-1-1.html

40.数据错误1267分析和解决方案(带图示)
https://discuz.dismall.com/thread-417719-1-4.html

41.mysql5.0数据通过mysqldump导入到mysql4.1以下的版本的时候数据表的 auto_increment会丢失的解决方法
https://discuz.dismall.com/thread-348554-1-6.html

42.Discuz!4.1 的标准数据表遗失后的解决方法教程
https://discuz.dismall.com/thread-374655-1-6.html

43.Table'cdb_sgjtime' doesn't exist的解决方法!
https://discuz.dismall.com/thread-265330-1-6.html

44.安装打工赚钱插件出现错误:
SQL: SHOW CREATE TABLEbbs_adlist
Error: Table 'database.cdb_adlist' doesn't exist
数据表缺失,请恢复备份数据    的解决办法
https://discuz.dismall.com/thread-278691-1-1.html

45.
广告与模板的对应关系:
头部横幅广告 header.htm   尾部横幅广告 footer.htm       页内文字广告index.htm和forumdisplay.htm

帖内广告  viewthread.htm   漂浮广告     footer.htm        对联广告    footer.htm

46.如何设置版主和超级版主没有权限进入后台,只有管理员可以进入后台?
解决方法:
在论坛目录下找到admincp.php这个文件,打开这个文件之后,按照以下方法修改代码:
1:查找以下内容:
elseif($adminid == 2 || $adminid == 3) {
if($action == 'home') { $cpscript = 'home'; }elseif((($allowedituser || $allowbanuser) && $action =='editmember') || ($allowbanip && $action == 'ipban')) {$cpscript = 'members'; } elseif($action == 'forumrules') { $cpscript ='forums'; } elseif($allowpostannounce && $action =='announcements') { $cpscript = 'announcements'; } elseif(($allowmoduser&& $action == 'modmembers') || ($allowmodpost &&($action == 'modthreads' || $action == 'modreplies'))) { $cpscript ='moderate'; } elseif(($allowcensorword && $action == 'censor')|| $action == 'logout') { $cpscript = 'misc'; } elseif($allowmassprune&& $action == 'prune') { $cpscript = 'prune'; } elseif($action== 'plugins') { $cpscript = 'plugins'; } elseif($allowviewlog&& ($action == 'ratelog' || $action == 'modslog' || $action =='banlog')) { $cpscript = 'logs'; }
        }
2:将其修改为:
elseif($adminid == 2 || $adminid == 3) {
                $cpaccess = 0;
        }
提示:请注意代码中的这个符号'}',以免出现错误.

47.
如何设置游客在特定的某个版区只能看到帖子但无法看到帖子内容?解决方法:
首先,“系统设置->分组与级别->用户组”:将游客的阅读权限设为0;然后,“系统设置->论坛设置->编辑论坛”:选
择你打算对游客开放浏览帖子的论坛点编辑,在“论坛权限-浏览论坛许可”处:在游客前打勾。这样就实现了游客除了访问
您允许的论坛外,其他论坛的帖子都无法访问。
同理,您也可以设置其他用户组能访问哪些论坛帖子,不能访问哪些论坛帖子。

48.如何使论坛的首页不要出现今日的发帖数?
解决方法:
打开论坛根目录下的templates文件,找到default文件,修改default目录下的index.htm文件,打开index.htm文件删
除下面的代码即可:
  1. $posts {lang index_posts} / {lang index_today} $todayposts {lang index_posts} /
复制代码
如果还想修改其他设置,如今日主题数,帖子数等,同样修改default目录下的index.htm文件,找到相应代码删除或修
改即可。

49.There seems to have been a problem with the database of your Discuz! Board
  Discuz! info: MySQL Query Error
  Time: 2006-3-28 9:04am Script: /index.php
  SQL: SELECT * FROM cdb_settings WHERE variable NOT IN('bbrules', 'bbrulestxt', 'maxonlines', 'welcomemsg',          'welcomemsgtxt','newsletter', 'creditsnotify', 'custombackup') Error: Table'151855db.cdb_settings' doesn't exist
  数据表缺失,请恢复备份数据
答:其中原因:
a、你在使用过程中有过修改
b、升级或者是转换后导入数据的时候没有成功建立
c、没有成功安装完
解决方法:如果是新安装的数据库可以重新安装一下,如果数据库里已经有会员以及其它的数据,可以用phpmyadmin手动增加没有的表

50.   Client does not support authentication protocol requested by server; consider upgrading MySQL client Errno.: 1251
解决方法:
在MySql> 命令行下输入:SET PASSWORD FOR [email=user@localhost]user@localhost[/email] = OLD_PASSWORD('pw');
其中:数据库使用的用户名是user ,密码是 pw (上面的语句后面的分号不可少)

51.Discuz! 4.1.0 IIS Rewrite(静态化)设置方法

52.大数据无法后台恢复的解决方法

更改admin/database.inc.php
默认应该是:
  1. $sqldump .= fread($fp, 8388607);
复制代码
改为
  1. if ($from == 'server') {



  2. $sqldump .= fread($fp, filesize($datafile));



  3. } else {



  4. $sqldump .= fread($fp, 99999999);



  5. }
复制代码
建议使用  restore.php恢复数据  

恢复路径
你的网址目录+restore.php?file=forumdata/数据库名称.sql

53.
给会员发mail中的Discuz的修改

后台->模版编辑->默认风格 [详情]->emails [编辑]
搜索
  1. [Discuz!]Email 地址验证
复制代码
将其中的[Discuz!]替换成你想要的内容,或者删去即可。

54.4种JS调用报错的解决方法                                                                                  a.The webmaster did not enable this feature这个错误因为论坛此时关闭了JS调用解决方法:系统设置  基本设置  Discuz!选项  JS调用  启用 JS 调用  点击"是"
b.Referer restriction is taking effect  这个错误因为论坛设置了JS 来路限制,您的地址不是论坛允许的地址或者使用了代理服务器解决方法:系统设置  基本设置  Discuz!选项  JS调用  JS 来路限制   添加相应的地址
c.Authentication failed这个错误因为您使用不合法的调用解决方法:仔细检查js代码,一般不要改动默认生成的代码
d.Undefined actionfunction变量不合法,默认您只可以调用以下的内容:新帖,论坛列表,会员排行,论坛统计,附件图片.解决方法:如果您调用其他的内容需要修改javascript.php

55.小修改:去掉累计 5 次错误尝试,15 分钟内将不能登录论坛的功能


56.发帖自动加上发帖日期  [可自定义版块增加] for 5.0


不断整理中~:D :lol




[ 本帖最后由 下砂 于 2007-5-30 12:27 编辑 ]

评分

4

查看全部评分

cc88 发表于 2006-11-25 17:49:02 | 显示全部楼层
1.discuz代码 不小心被删后   后台执行的语句
  1. INSERT INTO cdb_bbcodes VALUES (1, 0, 'fly', 'bb_fly.gif', '<marquee width="90%" behavior="alternate" scrollamount="3">{1}</marquee>', '[fly]This is sample text[/fly]', 'Make text move horizontal, the same effect as html tag <marquee>. NOTE: Only Internet Explorer supports this feature', 1, 1);
  2. INSERT INTO cdb_bbcodes VALUES (2, 0, 'flash', 'bb_flash.gif', '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400"><param name="allowScriptAccess" value="sameDomain"><param name="movie" value="{1}"><param name="quality" value="high"><param name="bgcolor" value="#ffffff"><embed src="{1}" quality="high" bgcolor="#ffffff" width="550" height="400" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>', 'Flash Movie', 'Insert flash movie to thread page', 1, 1);
  3. INSERT INTO cdb_bbcodes VALUES (3, 1, 'qq', 'bb_qq.gif', '<a href="http://wpa.qq.com/msgrd?V=1&Uin={1}&Site=[Discuz!]&Menu=yes" target="_blank"><img src="http://wpa.qq.com/pa?p=1:{1}:1" border="0"></a>', '[qq]688888[/qq]', 'Show online status of specified QQ UIN and chat with him/her simply by clicking the icon', 1, 1);
  4. INSERT INTO cdb_bbcodes VALUES (4, 0, 'ra', 'bb_ra.gif', '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="400" height="30" id="Player" border="0"><param name="_ExtentX" value="10583"><param name="_ExtentY" value="794"><param name="AUTOSTART" value="0"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="CONTROLS" value="controlpanel"><param name="CONSOLE" value="_master"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><param name="SRC" value="{1}"></object>', '[ra]rtsp://your.com/example.ra[/ra]', 'Embed Real Audio in thread page', 1, 1);
  5. INSERT INTO cdb_bbcodes VALUES (5, 0, 'rm', 'bb_rm.gif', '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="500" height="400" id="RealMoviePlayer" border="0"><param name="_ExtentX" value="13229"><param name="_ExtentY" value="10583"><param name="AUTOSTART" value="0"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="CONTROLS" value="ImageWindow"><param name="CONSOLE" value="_master"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><param name="SRC" value="{1}"></object><br><object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="500" height="40" id="RealMoviePlayer" border="0"><param name="_ExtentX" value="13229"><param name="_ExtentY" value="1058"><param name="AUTOSTART" value="0"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="CONTROLS" value="controlpanel"><param name="CONSOLE" value="_master"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><param name="SRC" value="{1}"></object>', '[rm]rtsp://your.com/example.rm[/rm]', 'Embed Real Audio/Vidio in thread page', 1, 1);
  6. INSERT INTO cdb_bbcodes VALUES (6, 0, 'wma', 'bb_wma.gif', '<object height="64" width="260" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" align="center" border="0"><param name="AutoStart" value="0"><param name="Balance" value="0"><param name="enabled" value="-1"><param name="EnableContextMenu" value="-1"><param name="url" value="{1}"><param name="PlayCount" value="1"><param name="rate" value="1"><param name="currentPosition" value="0"><param name="currentMarker" value="0"><param name="defaultFrame" value=""><param name="invokeURLs" value="0"><param name="baseURL" value=""><param name="stretchToFit" value="0"><param name="volume" value="100"><param name="mute" value="0"><param name="uiMode" value="mini"><param name="windowlessVideo" value="-1"><param name="fullScreen" value="0"><param name="enableErrorDialogs" value="-1"><param name="SAMIStyle" value><param name="SAMILang" value><param name="SAMIFilename" value><param name="captioningID" value></object>', '[wma]mms://your.com/example.wma[/wma]', 'Embed Windows media audio in thread page', 1, 1);
  7. INSERT INTO cdb_bbcodes VALUES (7, 0, 'wmv', 'bb_wmv.gif', '<object height="400" width="500" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" align="center" border="0"><param name="AutoStart" value="0"><param name="Balance" value="0"><param name="enabled" value="-1"><param name="EnableContextMenu" value="-1"><param name="url" value="{1}"><param name="PlayCount" value="1"><param name="rate" value="1"><param name="currentPosition" value="0"><param name="currentMarker" value="0"><param name="defaultFrame" value=""><param name="invokeURLs" value="0"><param name="baseURL" value=""><param name="stretchToFit" value="0"><param name="volume" value="100"><param name="mute" value="0"><param name="uiMode" value="mini"><param name="windowlessVideo" value="0"><param name="fullScreen" value="0"><param name="enableErrorDialogs" value="-1"><param name="SAMIStyle" value><param name="SAMILang" value><param name="SAMIFilename" value><param name="captioningID" value></object>', '[wmv]mms://your.com/example.wmv[/wmv]', 'Embed Windows media audio/video in thread page', 1, 1);
复制代码
2.怎样把贴内广告显示在贴子上面 并把广告两个字去掉!
templates\default\viewthread.htm中:
  1. <!--{if
  2. !empty($advlist['thread'][$post['count']])}--><tr
  3. class="t_infoline"><td class="line" style="padding:
  4. 5px">[{lang advertisement}]
  5. $advlist[thread][$post[count]]</td></tr><!--{/if}-->
复制代码
把上面的代码剪切下来,然后插入到下面的语句前:
  1. <table border="0" cellspacing="0" cellpadding="{TABLESPACE}" class="t_msg">

  2.         <tr><td>
复制代码
即改为下面的代码:
  1. <table border="0" cellspacing="0" cellpadding="{TABLESPACE}" class="t_msg">

  2.         <tr><td>

  3.                 <!--{if !empty($advlist['thread'][$post['count']])}-->$advlist[thread][$post[count]]<!--{/if}-->
复制代码
详见 https://discuz.dismall.com/thread-475412-1-1.html

3.DZ5。0怎样设置只有管理人员才可看到在线列表
打开index.php
找到
  1. if($onlinenum > $onlineinfo[0]) {
复制代码
上面加
  1. if ($adminid == 1 || $adminid == 2 || $adminid == 3) {
复制代码
找到
  1. } else {
  2.         require_once DISCUZ_ROOT.'./include/category.inc.php';
  3. }
复制代码
替换为
  1. } else {
  2.         require_once DISCUZ_ROOT.'./include/category.inc.php';
  3. }
  4. }
复制代码


4.如何更改“子论坛”这3个字
可以修改 templates.lang.php
查找子论坛,将它修改成您要的字就可以了

5.把主题分类的 [ ] 改成 【 】。
首先打开 forumdisplay.php 找:
  1. '['.$forum['threadtypes']['types'][$thread['typeid']].'] ' : '';
复制代码
然后替换成:
  1. '【'.$forum['threadtypes']['types'][$thread['typeid']].'】 ' : '';
复制代码
如果也需要在 viewthread 里同样的把 [ ] 改成显示为【 】可以这样修改。
打开 viewthread.php 找:
  1. '['.$forum['threadtypes']['types'][$thread['typeid']].'] ' : '';
复制代码
然后替换成:
  1. '【'.$forum['threadtypes']['types'][$thread['typeid']].'】 ' : '';
复制代码

6.首页四格_全Cache,后台控制,图片预览FOR DZ5.0正式版


7.
删除用户只能删除用户主题帖,不能删除回复帖
的解决方法
打开members.inc.php,查找
  1. $db->query("DELETE FROM {$tablepre}posts WHERE tid IN ($tids)", 'UNBUFFERED');
复制代码
改成
  1. $db->query("DELETE FROM {$tablepre}posts WHERE authorid IN ($uids)", 'UNBUFFERED');
复制代码
8.如何将分论坛的在线用户显示在上面

在文件/templates/default/forumdisplay.htm查找
  1. <!--{if $whosonlinestatus}-->
  2.         <div class="maintable">
  3.         <div class="spaceborder" style="width: {TABLEWIDTH}">
  4.         <table cellspacing="{INNERBORDERWIDTH}" cellpadding="{TABLESPACE}" width="100%" align="center">
  5.         <!--{if $detailstatus}-->
  6.                 <tr class="header"><td width="100%">
  7.                 <a name="online"></a><a href="forumdisplay.php?fid=$fid&page=$page&showoldetails=no#online"><img src="{IMGDIR}/collapsed_no.gif" align="right" border="0" alt="" /></a>{lang forum_activeusers}
  8.                 </td></tr>
  9.                 <tr><td>
  10.                 <table cellspacing="0" cellpadding="0" border="0" width="98%" align="center">
  11.                 <tr><td nowrap>
  12.                 <!--{loop $whosonline $key $online}-->
  13.                         <!--{if $key % 7 == 0}--></td></tr><tr><td width="15%" nowrap><!--{else}--></td><td width="15%" nowrap><!--{/if}-->
  14.                         <img src="images/common/$online[icon]"  alt="" />
  15.                         <a href="viewpro.php?uid=$online[uid]" title="{lang time}: $online[lastactivity]{LF}
  16.                         {lang action}: $online[action]{LF}
  17.                         {lang forum}: $forumname">$online[username]</a>
  18.                 <!--{/loop}-->
  19.                 </td></tr></table></td></tr>
  20.         <!--{else}-->
  21.                 <tr class="header"><td width="100%">
  22.                 <a name="online"></a><a href="forumdisplay.php?fid=$fid&page=$page&showoldetails=yes#online"><img src="{IMGDIR}/collapsed_yes.gif" align="right" border="0" alt="" /></a>{lang forum_activeusers}
  23.                 </td></tr>
  24.         <!--{/if}-->
  25.         </table></div><br></div>
  26. <!--{/if}-->
复制代码
上面这一段 把他剪切到
  1. <!--{if !empty($newpmexists)}-->
  2.         <div class="maintable">
  3.         {template pmprompt}
  4.         </div>
  5. <!--{/if}-->
复制代码
上面就OK了


9.  Errno.: 1030
翻译:读表头产生错误
分析:这个错误是由于数据库所在磁盘空间已满造成的。
解决:清理一下磁盘,腾出一些空间用来运转数据库


10.验证码问题输入正确老报错的解决办法
后台升级sql语句,升级后更新缓存
  1. UPDATE `xsbbs_settings` SET `value` = '0' WHERE `variable` = 'seccodestatus' LIMIT 1;
复制代码
或者清空.\forumdata\cache及.\\forumdata\templates两个文件夹下的文件


11.Errno.:1054
https://discuz.dismall.com/thread-559337-1-1.html


12.Invalid argument supplied for foreach() in 解决方案
https://discuz.dismall.com/thread-481276-1-1.html

[ 本帖最后由 下砂 于 2007-3-19 15:55 编辑 ]
回复

使用道具 举报

supercyf 发表于 2006-11-25 17:52:12 | 显示全部楼层
好贴顶一个!全部收藏以做为参考资料。。。。


借用:  

Discuz!使用技巧:如何防止用户在论坛恶意灌水?

  1:问:如果有注册机器人在Discuz!论坛上批量注册用户怎么办?

  答:以管理员身份登入Discuz!后台,依次 “Discuz! 选项 -->安全控制--> 启用验证码”。将“新用户注册”选项前打勾,可有效防止注册机批量注册。

  另外还可以设置注册限制:“Discuz! 选项-->注册与访问控制-->IP 注册间隔限制(小时) ”在这里设置同一台电脑注册时间的间隔也可有效防止恶意注册。

  2:问:论坛如何防止论坛恶意批量发帖?

  答:以管理员身份登入Discuz!后台,在后台设置防止灌水时间:“Discuz! 选项-->安全控制-->发帖灌水预防”,在这里设置两个帖子发表的时间间隔。

  3:问:如何禁止论坛发表带有敏感字符的帖子?

  答:以管理员身份登入Discuz!后台设置方法:依次进入后台 - 帖子相关 - 词语过滤 在 不良词语 输入框中填写要过滤的字符。在替换为 输入框中填写改铭感字符过滤后的替换字符,如 需要过滤 “他妈的”为“TMD”则在 不良词语 输入框中填写 “他妈的”,在 替换为输入框中填写“TMD”即可。有没有办法让含有某个字符的帖子无法发表呢?可以的。只要在上面选项中的 替换为 输入框中填写“{BANNED}”,则将该铭感字符设置为不可发表。

  4:问:如果发广告者在论坛各处发帖,管理员想一次性删除可以吗?

  答:当然可以。以管理员身份登Discuz!后台,选择“论坛维护-->批量删帖”,在“发帖用户名”一项中填写恶意发帖者ID,点击提交后出现该ID所发表的所有文章,全部打勾或有选择性的批量删除即可。

      5:
个人空间24小时热点导读DZ调用


出现 Cache List: style_xx 的解决方法


交易和积分相关FAQ [最后更新12.8]


因字符集问题导致安装失败的解决方法

[ 本帖最后由 下砂 于 2007-1-8 13:29 编辑 ]
回复

使用道具 举报

 楼主| 下砂 发表于 2006-11-25 17:52:20 | 显示全部楼层
数据库问题解决方法整理

一、Can't connect to MySQL server on 'localhost' (10061)
翻译:不能连接到 localhost 上的mysql
分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。
需要启动这台机器上的MySQL服务
如果机子负载太高没空相应请求也会产生这个错误。
解决:
既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。
如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin -uroot -p123 processlist来查看mysql当前的进程 二、Unknown 二、MySQL Server Host 'localhosadst' (11001)
翻译:未知的MySQL服务器 localhosadst
分析:服务器 localhosasdst 不存在。或者根本无法连接
解决:仔细检查自己论坛下面的 ./config.inc.php 找到
$dbhost
重新设置为正确的mysql 服务器地址

三、Access denied for user: 'roota@localhost' (Using password: YES)
翻译:用户 roota 访问 localhost 被拒绝(没有允许通过)
分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确
解决:仔细检查自己论坛下面的 ./config.inc.php 找到
      $dbuser
     $dbpw
  核实后重新设置保存即可

四、Access denied for user: 'red@localhost' to database 'newbbs'
翻译:用户 red 在localhost 服务器上没有权限操作数据库newbbs
分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起的。比如在select update等等。这个是因为该用户没有操作数据库相应的权力。比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作。
解决:
如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red 。或者直接修改 ./config.inc.php 为其配置一个具有对数据库操作权限的用户
或者通过如下的命令来更新授权
grant all privileges on dbname.* to 'user'@'localhost' identified by 'password’
提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效
FLUSH PRIVILEGES;
五、No Database Selected
翻译:没有数据库被选择上
分析:产生的原因有两种
config.inc.php 里面$dbname设置的不对。致使数据库根本不存在,所以在 $db->select_db($dbname); 时返回了false
和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。
解决:对症下药
打开config.inc.php 找到$dbname核实重新配置并保存
同问题四的解决方法
六、Can't open file: 'cdb_forums.MYI'. (errno: 145)
翻译:不能打开cdb_forums.MYI
分析:
服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
类unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组的问题而产生这个错误
解决:  
修复表即可,用phpmyadmin 或者 repair.php或者直接用命令修复 myisamchk -f ../data/newbbs/*.MYI
修改文件的属组
七、Table 'test.cdb_sessions' doesn't exist
翻译:xxxxx表不存在
分析:在执行sql语句时没有找到表,比如:SELECT * FROM cdb_members WHERE uid=’XX’ 这里如果表cdb_members不存在于$dbname库里,那么就会提示这个错误。具体可分为以下三种情况来讨论:
安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。
后台使用了不完全备份,导入数据时没有导入到已经安装了相应版本的论坛的数据库中。
程序文件和数据库不配套,比如d2.5的数据库配置给d4.1的程序来用肯定会出现这个错误。
解决: 同样对症下药,不同的原因不同的处理方法。
仔细对照插件作者提供的安装说明,把遗漏的对数据库的操作补上,如果仍然不能解决问题,那么应该怀疑该插件的可用性了。去咨询一下插件作者,或者将其卸载。
利用Discuz!论坛后台自带的数据库备份时,如果没有选择完全备份。那么在恢复的时候一定要恢复到一个相应版本Discuz!论坛的数据库上。例如:目前使用的论坛为DZ4.1,数据库名为db4.1,在DZ4.1的后台使用标准备份,那么恢复的时候可以恢复到db4.1的这个库上,或者全新安装一个DZ4.1,之后导入这些备份。
不要张冠李戴,多大的脚就穿多大的鞋。总之使得程序文件和数据库配套即可.
八、Unknown column 'column_name' in 'field list'
翻译:未知的字段名 column_name
分析:在执行sql语句是出现了指定表中没有的字段名称,就会出现这个错误。具体导致的原因可分为以下两种
安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。
程序文件和数据库不配套,比如d2.5的数据库配置给d4.1的程序来用肯定会出现这个错误。
解决: 导致的原因和问题八的1和 3是相同的,所以解决方法也一样。
九、You have an error in your SQL syntax
翻译:有一个语法错误在你的sql中
分析:论坛标准的程序是没有sql语法错误的。所以造成这个错误的原因一般就两类
安装插件或擅自修改程序。
不同的数据库版本数据库导出导入,比如MySQL4.1的数据在导出的语句包含了MySQL4.0没有的功能,像字符集的设定,这时如果将这些sql导入到MySQL4.0的时候就会产生sql语法错误。
解决:
仔细检查看到底是哪里的错误,将其修正,实在不行就用标准程序把出错的程序替换。
在数据库备份的时候要留意,如果不打算倒入到其他版本的mysql中则不用特殊考虑,反之要特殊的设定。使用DZ4.1的后台数据备份,可以按照提示去设定想要的格式。独立主机的也可以在到处的时候将其导出为mysql4.0的格式。
    mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > test.sql
十、Duplicate entry 'xxx' for key 1
翻译:插入 xxx 使索引1重复
分析:索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性。否则就会产生这个错误。
一般发生在对数据库写操作的时候,例如Discuz!4.1论坛程序要求所有会员的用户名username必须唯一,即username的索引是unique,这时如果强行往cdb_members表里插入一个已有的username的记录就会发上这个错误,或者将一条记录的username更新为已有的一个username。
改变表结构的时候也有可能导致这个错误。例如 Discuz!4.0论坛的数据库中cdb_members.username 的索引类型是index这个时候是允许有相同username的记录存在的,在升级到4.1的时候,因为要将username的索引由原来的index变为unique。如果这时cdb_members里存在有相同的username的记录,那么就会引发这个错误。
导出数据据时有时会因为一些原因(作者目前还不清楚)导致同一条记录被重复导出,那么这个备份数据在导入的时候出现这个错误是在所难免的了。
修改了auto_increment的值,致使“下一个 Autoindex”为一条已经存在的记录
解决: 两种思路,一是破坏掉唯一性的索引。二是把重复的数据记录干掉,只保留一条。很显然第一种思路是不可取的。那么按照二的思路我们得出以下几种解决方法,对应上面的i ii iii

按照错误提示里的信息到数据库中将重复的记录删除,仅保留一条即可。之后继续执行升级操作。
这种情况发生的概率很小,可以用文本编辑器打开备份文档,查找重复的信息。将其多余的拿掉,仅保留一条即可。
查询出表中auto_increment最大的一条记录,设置auto_incerment比其大一即可。
十一、 Duplicate key name 'xxx'
翻译:索引名重复
分析:要创建的索引已经存在了,就会引发这个错误,这个错误多发生在升级的时候。可能是已经升级过的,重复升级引起的错误。也有可能是之前用户擅自加的索引,刚好与升级文件中的所以相同了。
解决: 看看已经存在的索引和要添加的索引是否一样,一样的话可以跳过这条sql语句,如果不一样那么现删除已存在的所以,之后再执行。
十二、 Duplicate column name 'xxx'
翻译:字段名xxx重复
分析:添加的字段xxx已经存在,多发生在升级过程中,与问题十二的产生是一样的。
解决: 看一下已经存在的字段是否和将要添加的字段属性完全相同,如果相同则可以跳过不执行这句sql,如果不一样则删除掉这个字段。之后继续执行升级程序。
十三、 Table 'xxx' already exists
翻译:数据表xxx已经存在
分析:xxx表已经存在于库中,再次试图创建这个名字的表就会引发这个错误。同样多发生在论坛的升级中。类似于问题十二。
解决: 看看已经存在的表是否和将要创建的表完全一样,一样的话可以跳过不执行这个sql,否则请将存在的表先删除,之后继续执行升级文件。
十四、 Can't create database 'xxx'. Database exists
翻译:不能创建数据库xxx,数据库已经存在
分析:一个mysql下面的数据库名称必须保证唯一性,否则就会有这个错误。
解决:把已经存在的数据库改名或者把将要创建的数据库改名,总之不让他们的名称冲突。
十五、 小结(针对问题 11\12\13\14\15)
此类问题错误提示中都暗藏一个关键词duplicate(重复)
那么对于mysql数据库来说什么东西是不能重复的呢?
数据库 database
同一个数据库下数据表 table
同一个数据表下字段 column
同一个数据表下索引 key
同一个数据表在索引唯一(UNIQUE PRIMARY)的情况下记录中的这些字段不可以重复

十六、Unknown system variable 'NAMES'
翻译:未知的系统变量NAMES
分析:Mysql版本不支持字符集设定,此时强行设定字符集就会出现这个错误。
解决: 将sql语句中的SET NAMES ‘xxx’ 语句去掉

十七、 Warning: main(./include/db_.class.php) [function.main]: failedto open stream: No such file or directory in/export/www_site/eqdkp/bbs/install.php on line 417
翻译:
打开文件(./include/db_.class.php)失败,不是一个文件和目录在/export/www_site/eqdkp/bbs/install.php 417行
分析:
大家仔细看就明白了,标准程序里根本没有 ./include/db_.class.php这个文件。Install.php和include/common.inc.php 两个文件的调用可能会引起这个错误 require_onceDISCUZ_ROOT.'./include/db_'.$database.'.class.php';include'./include/db_'.$database.'.class.php';这两句分别是common.inc.php和install.php文件中的程序语句,这里当$database = ‘’;那么就会产生上面的错误。

在极特殊可能由于一些未知的原因造成config.inc.php没有被读取成功。
解决:
问题分析清楚了,解决起来很容易,打开./config.inc.php配置好$database
如果config.inc.php确实已经配置正确,请重启web服务器。

十八、 Lost connection to MySQL server during query
翻译:MySQL服务器失去连接在查询期间
分析:远程连接数据库是有时会有这个问题。MySQL服务器在执行一条sql语句的时候失去了连接造成的。
解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环境。

十九、halt(DISCUZ_ROOT./include/db_mysql_error.inc.php): failed toopen stream: No such file or directory ind:\usr\www\html\discuz_new\include\db_mysql.class.php on line 117
翻译:同问题十三
分析:凡是此类(failed to openstream)都是一样的问题,即找不到指定的文件或者无法打开。对于这个问题一般出现在restore.php的使用中,大家注意看DISCUZ_ROOT./include.db_mysql.inc.php似乎很熟悉,其实这个根本不是一个合法的地址,程序中的DISCUZ_ROOT是要被它的值所代替,但由于根本就没有定义DISCUZ_ROOT这个常量,所以DISCUZ_ROOT被当成了字符串直接来用了。
解决: 一般情况使用restore.php恢复备份数据是不会有错误产生的,但是如果他的备份本身是由问题的。比如问题十一 。那么只要在restore.php前面添加对DISCUZ_ROOT的定义即可,具体如下:
   define(‘DISCUZ_ROOT’, ‘./’);

二十、User 'red' has exceeded the 'max_updates' resource (current value: 500)
翻译:msql用户red已经超过了'max_updates'(最大更新次数),'max_questions'(最大查询次数),'max_connections'(最大连接数),当前设定为500
分析:在mysql数据库的下有一个库为mysql,它其中有一个表为user这里面的纪录每一条都对应为一个mysql用户的授权。其中字段max_questions max_updates max_connections分别记录着最大查询次数 最大更新数 最大连接数,当目前的任何一个参数大于任何一个设定的值就会产生这个错误。
解决: 独立主机用户可以直接修改授权表。修改完之后重启mysql或者跟新授权表,进入mysql提示符下执行
      FLUSH PRIVILEGES;
     记得后面要有分号’;’
      虚拟主机的用户如果总是出现这个问题可找空间商协商解决。
二十一、链接过多,请联系空间商
翻译:达到最大连接数
分析:连接数超过了mysql设置的值 max_connections 和wait_timeout 都有关系。wait_timeout的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
解决: 修改my.ini的max_connections 和wait_timeout 前者调大后者调小一些。

[ 本帖最后由 下砂 于 2006-11-28 11:30 编辑 ]
回复

使用道具 举报

cc88 发表于 2006-11-25 22:30:15 | 显示全部楼层
借用:
1.每点一次帖子就显示为10次的方法(就是增加点击率)

打开 viewthread.php 查找:
  1. $db->query("UPDATE {$tablepre}threads SET views=views+1 WHERE tid='$tid'", 'UNBUFFERED');
复制代码
其中:
views=views+1
可以修改成你需要的,如:
views=views+10

2.超级简单实现用户名的限制修改!!DZ4+DZ5
register.php
找:
  1. $username = trim($username);
复制代码

下面加:
1).
  1. if (!preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $username)) {
  2.                 showmessage ('用户名必须是中文!', 'register.php');
  3.         }
复制代码

2). 用户名只允许使用26个英文字母
  1. if(!(@eregi("^[A-Za-z]+[        DISCUZ_CODE_2        ]quot;,$username))){
  2.       showmessage('用户名只允许使用26个英文字母和数字');
  3.   }
复制代码

3).用户名不允许是全数字.
  1. if(@ereg("^[0-9]+[        DISCUZ_CODE_3        ]quot;,$username)){

  2.      showmessage('不能全部以数字作为注册名,请返回修改'); }
复制代码

3.自定义表情的修改

   首先,将表情图片文件(gif格式)上传到"./images/smilies/" 目录下。然后到 帖子管理 →Smilies 编辑→对应替换Smilies 文件名.

4.只想显示 共 xx人在线 | 最高纪录是xx 最终解决办法

index.php文件里找
  1. } else {

  2. $showoldetails = false;

  3. }
复制代码
改为
  1. } else {

  2. $showoldetails = true;

  3. }
复制代码
discuz.htm文件里找
  1. <tr><td colspan="7" valign="middle">$_DCACHE[onlinelist][legend]</td></tr>

  2.                 <!--{if $detailstatus}-->
复制代码
改为
  1. <tr><td colspan="7" valign="middle">$_DCACHE[onlinelist][legend]</td></tr>

  2.                 <!--{if 0}-->
复制代码
5.EMAIL前缀带[Discuz!]去掉的方法
修改admin/members.inc.php
488行  替换成您自己的

[ 本帖最后由 下砂 于 2007-1-24 11:39 编辑 ]

评分

1

查看全部评分

回复

使用道具 举报

matiz 发表于 2006-11-25 22:56:49 | 显示全部楼层
不错,我先来试试我的验证码,看不到的问题.

1.设置游客只能看一半的文章
viewthread.php.找到
  1. $forum['allowhtml'], ($forum['jammer'] && $post['authorid'] != $discuz_uid ? 1 : 0), $pasetype, $post['authorid']);
复制代码
在下面加上
  1.                         if(!$discuz_user){
  2.                         if(strlen($post['message'])>200){
  3. $post['message'] = cutstr($post['message'], 200);
  4. $post['message'] = "".$post['message']."<br><div>
  5. 非常抱歉,您的当前状态为游客,要查阅完整内容请 <a href=./register.php>注册</a> 或者 <a href=./logging.php?action=login>登录</a> 。<br>";
  6. $post['bbcodeoff'] = 0;
  7.                         }else{
  8.                         $post['message'];
  9.                         }
  10.                         }
复制代码

其中,200的值可以自己修改

[ 本帖最后由 下砂 于 2007-3-8 14:06 编辑 ]
回复

使用道具 举报

kaixinxiaoyu 发表于 2006-11-26 09:37:06 | 显示全部楼层
很不错的汇总 期待更新


1.Flash Video视频文件的使用方法
https://discuz.dismall.com/thread-477901-1-1.html  2#

2.
如何配置config.inc.php文件

$dbhost = 'localhost';  // 数据库服务器 一般来说MYSQL和WEB安装在同一台主机上那么此项目应该填写localhost 如果MYSQL和WEB分离,那么需要填写MYSQL所在服务器的IP地址比如:61.83.59.128

$dbuser = 'dbuser';   // 数据库用户名 这个项目是填写您MYSQL登陆的用户名 因为一个MYSQL用户可以有几个数据库,所以请大  家区分数据库帐号名和数据库名的区别
$dbpw = 'dbpasswd';  // 数据库密码

$dbname = 'dbname';  // 数据库名 这个是你通过自己的MYSQL帐号建立的数据库名 部分虚拟主机限制了你的MYSQL帐号无法新建,而是在开通你帐号的时候就帮你建立好了,通常是和你的MYSQL帐号一致名字的数据库

$adminemail = [email=]'admin@your.com'[/email];  // 论坛系统 Email

$dbreport = 0;   // 是否发送数据库错误报告? 0=否, 1=是  当您数据库出现问题你可以选择是否发送报告到您上面的信箱里


3.文件权限修改方法介绍
https://discuz.dismall.com/viewthread.php?tid=487165


[ 本帖最后由 下砂 于 2006-12-22 15:17 编辑 ]
回复

使用道具 举报

Old吴 发表于 2006-11-28 09:27:38 | 显示全部楼层
61.191.29.174
回复

使用道具 举报

 楼主| 下砂 发表于 2006-11-28 11:33:29 | 显示全部楼层
1.更新缓存出错
SQL: SELECT uid, username FROM supe_userspaces WHERE islock=0 ORDER BY lastpost DESC LIMIT 100
Error: Table 'anjicn.supe_userspaces' doesn't exist
Errno.: 1146

解决:在论坛的后台--系统设置---升级数据库执行下面语句
  1. DROP TABLE IF EXISTS supe_userspaces;

  2. CREATE TABLE supe_userspaces (

  3.   uid mediumint(8) unsigned NOT NULL default '0',

  4.   dateline int(10) unsigned NOT NULL default '0',

  5.   lastpost int(10) unsigned NOT NULL default '0',

  6.   catid smallint(6) unsigned NOT NULL default '0',

  7.   username char(15) NOT NULL default '',

  8.   spacename char(50) NOT NULL default '',

  9.   viewnum int(10) unsigned NOT NULL default '0',

  10.   spaceallnum mediumint(8) unsigned NOT NULL default '0',

  11.   spaceblognum mediumint(8) unsigned NOT NULL default '0',

  12.   spaceimagenum mediumint(8) unsigned NOT NULL default '0',

  13.   spacefilenum mediumint(8) unsigned NOT NULL default '0',

  14.   spacegoodsnum mediumint(8) unsigned NOT NULL default '0',

  15.   spacelinknum mediumint(8) unsigned NOT NULL default '0',

  16.   province char(15) NOT NULL default '',

  17.   city char(25) NOT NULL default '',

  18.   domain char(20) NOT NULL default '',

  19.   islock tinyint(1) NOT NULL default '0',

  20.   isstar tinyint(1) NOT NULL default '0',

  21.   photo char(3) NOT NULL default '',

  22.   PRIMARY KEY  (uid),

  23.   KEY islock (islock,lastpost),

  24.   KEY catid (catid,islock,lastpost)

  25. ) TYPE=MyISAM;
复制代码
2.在线会员列表显示的修改

修改 index.php 文件。
查找:"500",把"500"改成"***"就可以了。(***代表你需要的数字)

然后在修改 \templates\default\admincp.lang.php
查找:超过 500 人系统将自动缩略显示在线列表,把500改成***(同上)就可以了。


3.引用时将原帖的图片也引用过来 for DZ5.0.0
修改./include/newreply.inc.php

if(isset($repquote)) {

        include_once language('misc');

        $thaquote['useip'] = substr($thaquote['useip'], 0, strrpos($thaquote['useip'], '.')).'.x';

之间的内容(注意是之间的内容),替换为
  1. // 20061113 Show Quote IMG - , pid, attachment
  2.                 $query = $db->query("SELECT tid, fid, author, authorid, message, useip, dateline, anonymous, pid, attachment FROM {$tablepre}posts WHERE pid='$repquote' AND invisible='0'");
  3.                 $thaquote = $db->fetch_array($query);
  4.                 if($thaquote['tid'] != $tid) {
  5.                         showmessage('undefined_action', NULL, 'HALTED');
  6.                 }

  7.                 $quotefid = $thaquote['fid'];
  8.                 $message = $thaquote['message'];

  9. // 20061113 Show Quote IMG begin
  10.                 $allowgetattach = !empty($forum['allowgetattach']) || ($allowgetattach && !$forum['getattachperm']) || forumperm($forum['getattachperm']);
  11.                 if($thaquote['attachment'] && $allowgetattach) {
  12.                         $query = $db->query("SELECT aid, readperm, filename, attachment
  13.                                 FROM {$tablepre}attachments WHERE pid='$thaquote[pid]' ORDER BY aid");

  14.                         if($db->num_rows($query)) {

  15.                                 $showsettings = str_pad(decbin($showsettings), 3, '0', STR_PAD_LEFT);
  16.                                 $customshow = $discuz_uid ? str_pad(base_convert($customshow, 10, 3), 3, '0', STR_PAD_LEFT) : '222';
  17.                                 $showimages = $customshow{2} == 2 ? $showsettings{2} : $customshow{2};

  18.                                 while($attach = $db->fetch_array($query)) {

  19.                                         $isimg = in_array(strtolower(fileext($attach['filename'])), array('jpg', 'jpeg', 'jpe', 'gif', 'png', 'bmp'));
  20.                                         if($showimages && $attachimgpost && $isimg && (!$attach['readperm'] || $readaccess >= $attach['readperm'])) {
  21.                                                 $imgurl = "\n[img]".$boardurl.($attachrefcheck ? "attachment.php?aid=$attach[aid]&noupdate=yes" : "$attachurl/$attach[attachment]").'[/img]';
  22.                                                 if(preg_match("/\[attach\]$attach[aid]\[\/attach\]/i", $message)) {
  23.                                                         $message = preg_replace("/\[attach\]$attach[aid]\[\/attach\]/i", $imgurl, $message);
  24.                                                 } else {
  25.                                                         $message .= "\n".$imgurl."\n";
  26.                                                 }
  27.                                         }

  28.                                 }

  29.                         }
  30.                 }
  31. // end

  32.                 if($bannedmessages && $thaquote['authorid']) {
  33.                         $query = $db->query("SELECT groupid FROM {$tablepre}members WHERE uid='$thaquote[authorid]'");
  34.                         $author = $db->fetch_array($query);
  35.                         if(!$author['groupid'] || $author['groupid'] == 4 || $author['groupid'] == 5) {
  36.                                 $message = $language['post_banned'];
  37.                         }
  38.                 }

  39.                 $time = gmdate("$dateformat $timeformat", $thaquote['dateline'] + ($timeoffset * 3600));
  40.                 $message = preg_replace("/\[hide=?\d*\](.+?)\[\/hide\]/is", "[b]$language[post_hidden][/b]", $message);
  41.                 $message = preg_replace("/(\[quote])(.*)(\[\/quote])/siU", "", $message);
  42.                 $message = preg_replace($language['post_edit_regexp'], '', $message);
  43. // 20061113 Show Quote IMG
  44. //                $message = cutstr(dhtmlspecialchars(preg_replace("/\[.+?\]/", '', $message)), 200);
  45.                 $message = dhtmlspecialchars(preg_replace("/\[(?!\/?img).+?\]/ies", '', $message));
复制代码
保存OK!

3.安装时出现选择数据库空白

这个是别人遇到的问题之后的解决办法,我也遇到过,所以整理一下发布出来。成果都是大家的分享而已。

详细的问题是安装Discuz!5.0的时候出现以上的问题

分析:PHP没有加载MYSQL模块

解决方案:
如果使用的是WINDOWS自带的IIS,按以下步骤
1,修改php.ini (C:\php\php.ini 根据你的安装目录,我的是C:\php)
extension_dir = "C:\php\ext" (根据你的安装目录,我的是C:\php)
;extension=php_mysql.dll 去掉前面的";"号,改成 extension=php_mysql.dll
2, copy以下的文件去你的php安装目录,如c:\php\ext
php_mysql.dll
php_mysqli.dll
重启IIS
3,拷贝以下文件去c:\windows\system32
libmysql.dll
libmysqli.dll
这两个文件这里可以下载:http://www.siteinaweek.com/installphp5/libmysql_dll.zip

如果使用的是Apache
1、修改httpd.conf (C:\Program Files\Apache Software Foundation\Apache2.2\conf)
- LoadModule php5_module "C:/php/php5apache2_2.dll"
- PHPIniDir "C:\php\php.ini"
2、COPY以下五个文件到c:\windows\system32目录下
php5apache2.dll
      php5ts.dll
      php_mysql.dll
      libmysql.dll
      libmysqli.dll
点这里下载:
http://www.siteinaweek.com/installphp5/apache.zip
第二种方法
因为php 必须支持<?  标签才行

打开php.ini
查找short_open_tag = Off
改为short_open_tag = On
再重启apache 服务 就可以了。

如果上述两种方法还不行  请检查您的
文件属性


4.头部横幅广告的位置设置
后台--论坛管理--模版编辑--默认(或自己后添加的)模版--header--编辑
找到
<!--{if !empty($advlist['headerbanner'])}--><div class="right"><br>$advlist[headerbanner]</div><!--{/if}-->
在其上边添加一条(或者更改成如下)
<div style="width: 98%; height: 78px; padding-right:12px; text-align: left;">

padding-right就是指定到右边框的距离,单位是px
同理要修改距离顶部的距离可添加padding-top和底部距离padding-bottom
如果指定banner的高度   会随着图片的增大而撑开(除非你制作的图片不会超过指定的高度),为了防治这种现象。   就要加上overflow:hidden

5.DZ5.0如何设定不准回复N天以前的主题?
论坛管理 -- 编辑论坛 -- 主题自动关闭  (选"按发布时间自动关闭") --自动关闭时间(天): (写上您要设置的天数)

6.论坛最上和最下的深蓝线的去除方法
修改文件:templates → default → header.htm

如下代码注释掉这一行:3处
<!--
<div class="headerline" style="height: 6px"></div>
-->
<div class="headermenu">
<div class="maintable">

</div></div>
<!--
<div class="headerline" style="height: 6px"></div>
-->
<div class="headermenu" >


</div></div></div>
<!--
<div class="headerline" style="height: 6px"></div>
-->
<div class="maintable"><br>

最顶多余空隙:删除<div class="mainborder"></div>

7.活用Discuz!的积分系统
https://discuz.dismall.com/thread-505731-1-1.html

多留点啊  我还没补充完呢

[ 本帖最后由 下砂 于 2007-1-10 16:40 编辑 ]
回复

使用道具 举报

tosogo 发表于 2006-11-28 21:39:00 | 显示全部楼层

收藏了收藏了!

这里抢来做sql语句的存放地点

1.调整某个帖子的点击数
  1. UPDATE cdb_threads SET views=点击数 WHERE tid=主题编号;
复制代码
2.积分清零
  1. update cdb_members set credits=0 and extcredits1=0  and extcredits2=0 and extcredits3=0
复制代码
3.替换字符的SQL命令
  1. UPDATE `cdb_name` SET `field_name` = replace (`field_name`,'from_str','to_str')
复制代码

说明:
cdb_name —— 该字符或字符串所在表的名字
field_name —— 该字符或字符串所在字段的字段名
from_str —— 需要替换的字符串
to_str —— 替换成的字符串

4.如何将所有“禁言”用户全部恢复
  1. update cdb_members set adminid = '0', groupid = '' where groupid = '4';
复制代码


5.论坛全部帖子内容中的“A内容”替换成“B内容”的sql语句
  1. UPDATE cdb_posts SET message=REPLACE(message,'要替换的字符串','替换后的字符串');
复制代码
6.单个激活某个需要邮件激活之用户

  1. UPDATE `cdb_members` SET `adminid` = '0', `groupid` = '10' WHERE  `usename `= `该用户 `;
复制代码
7.批量激活邮件认证用户

  1. UPDATE `cdb_members` SET `groupid` = '10' WHERE groupid='8';
复制代码


[ 本帖最后由 下砂 于 2007-11-12 12:36 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-26 08:21 , Processed in 0.126129 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表