A-A+

DZX3.2问题记录贴

2015年08月05日 Linux, VPS 暂无评论 阅读 浏览:2,092 次

一、改UID
进入MYSQLADMIN.修改两个表pre_common_member和pre_ucenter_members即可

二、版块名称不超过50个字。
进入到的source\admincp目录,找到admincp_forums.php文。搜索if(strlen($_G['gp_namenew']) > 200) {cpmsg('forums_name_toolong', '', 'error');}修改为你相应的数字 X2版块名称不能超过50个字符
http://www.discuz.net/thread-2388129-1-1.html

你进入到Discuz!的admin目录,找到forums.inc.php文件,搜索forums_name_toolong,把if(strlen($newcat) > 50)修改为你相应的数字。比如200.该文件有3处需要修改。保存文件后论坛的标题长度就会变成你所设置的了。或者搜索 50 也行.然后改成自己需要的,比如我据根论坛的这关际需要改为150-300之间的数,问题解决了

三、UC通信成功但通知失败
source/class/discuz/discuz_application.php 该文件有一个校验函数叫 _xss_check,我的办法是 既然这个函数是用来检测跨网站的 那忽略 post的数据也是没问题的$temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');改为$temp = $_SERVER['REQUEST_URI'];UC通信成功但通知失败

四、修改dz论坛主题的发帖人为指定用户的方法
1、通过phpadmin进入mysql数据库中,并进入论坛对应的数据库中;
2、在数据库中找到对应的数据表,首先打开主题表pre_forum_thread
1)这个主题表是用来记录主题的发帖人、发帖时间等,会体现在论坛版块列表中,如下图
2)通过tid找到需要修改的主题,对应的SQL语句为:
SELECT * FROM `gbk_pre_forum_thread` WHERE tid=4501
3)然后点“编辑”,修改字段author、authorid为指定的会员用户名、uid,对应的SQL语句为:
UPDATE `对应的数据库名`.`gbk_pre_forum_thread` SET `author` = 'coolling',
`authorid` = '32' WHERE `gbk_pre_forum_thread`.`tid` =4501;
执行完成后就可以看到在论坛版块主题列表中对应主题的发帖人信息已更改,如不变化可后台更新缓存。
3、在数据库中找到对应的数据表,打开帖子表pre_forum_post
1)这个帖子表是用来记录帖子内容页中的发帖人信息包括帖子的具体内容,如下图所示:
2)通过tid找到需要修改的帖子,对应的SQL语句为:
SELECT * FROM `gbk_pre_forum_post` WHERE tid=4501
3)然后点“编辑”,修改字段author、authorid为指定的会员用户名、uid,对应的SQL语句为:
UPDATE `对应的数据库名`.`gbk_pre_forum_post` SET `author` = 'coolling',
`authorid` = '32' WHERE `gbk_pre_forum_post`.`tid` =4501 AND `gbk_pre_forum_post`.`position` =1;
执行完成后就可以看到帖子内容页中的发帖人信息已更改,如不变化可后台更新缓存。
4、至此就彻底把某个帖子的发帖人信息修改为指定用户了。熟悉后可以直接通过SQL执行以上代码就可以实现批量修改了

五、上传附件提示 服务器限制无法上传那么大的附件,上传头像提示 Can not write to the data/tmp folder
把AMH的安全模式改成兼容就可以了,不过要刷新一下缓存

open_basedir
原来的配置文件
upload_tmp_dir = /tmp ##设置的上传文件临时目录
open_basedir = /opt/webRoot/ ##没有包含上传临时文件的目录导致错误
改完之后的配置
upload_tmp_dir = /tmp ##设置的上传文件临时目录
open_basedir=/home/www/www.server110.com:/tmp/:/proc/
请注意: 若在php.ini所设置的上传文件临时目录为/tmp/, 那么设置open_basedir时就必须包含/tmp/,否则会导致上传失败。另外open_basedir 如果要后面包含多个目录中间用:分开即可

六、Discuz/X3.2去掉标题中的Powered by Discuz!以及解决首页标题后的"-

虽然不提倡大家去掉版权信息,但是在实际操作的时候还是去掉,毕竟每个页面标题最后面出现”Powered by Discuz!“会显得页面标题比较冗长。

经过本人的实践,论坛里也有操作方法,不过那个操作方法还是有点细节问题存在。

下面本人贴出实际操作的操作方法:

1、Powered by Discuz!这个信息存在于header_common.htm这个页面,页面路径为:根目录下template/default/common/

2、代码修改
找到下列代码:

  • <title><!–{if
  • !empty($navtitle)}–>$navtitle - <!–{/if}–><!–{if
  • empty($nobbname)}–> $_G['setting']['bbname'] - <!–{/if}–>
  • Powered by Discuz!</title>


复制代码

将代码修改为:

  • <title><!--{if
  • !empty($navtitle)}-->$navtitle  <!--{/if}--><!--{if
  • empty($nobbname)}-->- $_G['setting']['bbname'] <!--{/if}-->
  • </title>


复制代码

主要修改的地方有:
首先去掉代码“Powered by Discuz!
然后将“$navtitle - ”里的横线去掉,修改为“$navtitle
最后在代码“$_G['setting']['bbname'] ”的前面加上一个横线,改为“- $_G['setting']['bbname'] ”,也就是在论坛名称前面加一个中横线。


3、注意事项

在直接去掉“Powered by Discuz!”之后,上传覆盖该页面,但是会出现首页标题的最后面会多出来一个“-”,只需要按照上述修改方法,把导航名称后的中横线移到论坛名称前面即可,具体可以参考我的论坛设置,也是按照上面的修改方法来的。

举例子来说:
我的首页在直接去掉去掉“Powered by Discuz!”之后的标题是这样的:

很明显可以看到在标题最后面多出了一个 “-”,也许有人会觉得是标题中多了一个“-”,但是如果把$navtitle后面的“-”去掉后,首页标题确实没有了“-”,但是内页标题比如我的版块首页标题原本应该为“世界杯32强 -  世界杯之家”,但在去掉$navtitle后面的“-”之后,会变成“世界杯32强    世界杯之家”,中间的“-”也没了。

其实只需要把$navtitle后面的“-”去掉,然后在“<!--{if empty($nobbname)}-->”的后面或者“$_G['setting']['bbname']”的前面加上“-”即可。
收工!

七、(130) Incorrect file format 'security_failedlog'
何为pre_security_failedlog:pre_security_failedlog:防水墙失败日志记录。
自己试验、修复和权限都不能解决问题,就按照重建的方法,可以用,不过由于我的编码是UTF-8,而网上流传的是GBK的,使用貌似没问题,不过一进行数据库检查就会提示这个问题,应该是把编码改一下就可以了,不过不放心,所以又再查找,发现SQL创建的语句就在 install/data/install.sql,于是用UE打开,最后一段就是了,这里有一个问题就是最后的TYPE=MyISAM;在5.5的MYSQL已经禁用,所以用改成ENGINE=MyISAM,官方这里没有设置字符集的,我也就没设置。最后成功运行

八、由于程序限制了大尺寸(指分辨率)附件图片,提示 “没有合法的文件被上传”
更改方法:source\class\discuz\class_upload.php

DZX3.2应该是discuz_upload.php这个文件
找到:

function get_image_info($target, $allowswf = false) {
$ext = discuz_upload::fileext($target);
$isimage = discuz_upload::is_image_ext($ext);
if(!$isimage && ($ext != 'swf' || !$allowswf)) {
return false;
} elseif(!is_readable($target)) {
return false;
} elseif($imageinfo = @getimagesize($target)) {
list($width, $height, $type) = !empty($imageinfo) ? $imageinfo : array('', '', '');
$size = $width * $height;
   if($size > 16777216 || $size < 16 ) {
                                return false;
} elseif($ext == 'swf' && $type != 4 && $type != 13) {
return false;
} elseif($isimage && !in_array($type, array(1,2,3,6,13))) {
return false;
}
return $imageinfo;
} else {
return false;
}
}

将 if($size > 16777216 || $size < 16 )  中16777216后即可解决问题。
16777216大约为5000*3356。


参考:http://www.moke8.com/article-5075-1.html

标签:

给我留言

Copyright © 龙网博客 保留所有权利.   Theme  Ality

用户登录