Archives for : Discuz

星期五 大雪 -2~1℃

雪的杀伤力

平时乘车 40 分钟,今天花了两个小时。

到公司开电脑一看时间,2011/1/1 0:00,估计主板也被窗外的雪伤到了。


discuz x2.5 新增的管理员突然登录不了后台(解决方法)

试了网上的几个方法,都不管用,后来用创始人的账号登录后台,进入“站长”管理,新增团队成员,就可以登录了。

注意,不要直接把某用户的“所属用户组”改为“管理组”,我之前就是这么处理的,后来突然有一天这个账号就登录不了后台了。正确的增加管理员的方法应该是在“站长管理”里面新增团队成员。


友吧今天

  • 处理管理员突然登录不了后台的问题。
  • 设置后台管理权限。
  • 论坛热点的“最新回复”改为“一周热门回复”。

星期日 多云 -3~5℃

安装在子目录的 discuz x2.5 伪静态显示为根目录形式(测试)

今晚研究了一下,虽然 discuz x2.5 程序安装在子目录,但是想要伪静态地址显示为根目录的形式。

比如,现在的伪静态地址是这样的:

http://www.friends8.com/bbs/thread-57-1-1.html

想显示为:

http://www.friends8.com/thread-57-1-1.html

测试一下帖子内容页,修改 iis 的 rewrite 配置文件 httpd.ini

RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6

改为

RewriteRule ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html(\?(.*))*$ /bbs/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6

在 discuz 后台伪静态设置里

thread-{tid}-{page}-{prevpage}.html

改为

../thread-{tid}-{page}-{prevpage}.html

经过这样处理后,虽然伪静态地址显示为根目录了,但是提示:

抱歉,指定的主题不存在或已被删除或正在被审核

先记录一下,还没解决问题。


在家健身(36)

  • 在小区外慢跑 15 分钟 (今天跑得手有点冷)
  • 俯卧撑 30*2

友吧今天

测试:伪静态地址显示为根目录形式。

星期六 阴 0~8℃

discuz x2.5 创始人积分一直为零的解决

昨晚发现创始人的积分一直是 0,发的帖总是显示“新人帖”,不知道是不是整合 uchome 造成的。

研究了很长时间,最后发现是 pre_common_member_count 表没有记录。

在该表手动增加一条该会员的记录即可解决问题,只是一些字段要手动填上去了,例如发帖数,好友数,等等。

另外,还需要在 pre_common_member_profile 和 pre_common_member_status 各增加一条记录。

附:观察一下可以发现,安装 discuz 时,创始人的 uid 默认是 1,但如果指定了 ucenter 里已有的用户,且该用户 uid 不是 1,就会产生这个问题。所以解决这个问题也可以这么处理:

把 pre_common_member_count 和 pre_common_member_profile 以及 pre_common_member_status 这三个表的第一条数据的 uid 由 1 改为创始人的正确 uid 即可。

参考:http://www.discuz.net/thread-2807858-1-1.html


友吧今天

  • 修复个别会员积分一直为零的 bug
  • 处理论坛模板 header.htm

 

星期六 多云 2~13℃

discuz x2.5 用户同步注册到 uchome 2.0

花了几天时间,终于解决这个头疼的问题了。

第1步

升级好 ucenter 1.6 后,记得把 uc 1.6 的 uc_client 覆盖 uchome 里面的 uc_client

第2步

参考 这篇日志 设置 discuz x2.5 与 uchome 2.0 的同步登录。

第3步

修改 \discuz\uc_client\model\user.php

找到

$this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid=’$uid’");

在这行下面添加(修改代码中的 uchome 数据库名,如果表前缀也不一样的话,记得修改 uchome_ 表前缀):

$this->db->query("insert into UCH数据库名.uchome_member SET uid=’$uid’,username=’$username’,password=’$password’");
$this->db->query("insert into UCH数据库名.uchome_space SET uid=’$uid’,username=’$username’,ip=’".$this->base->onlineip."’, dateline=’".$this->base->time."’");
$this->db->query("insert into UCH数据库名.uchome_spacefield SET uid=’$uid’,email=’$email’,css=”,privacy=”,friend=”,feedfriend=”,sendmail=”");

第4步

修改 \discuz\source\class\class_member.php

在底下(大概 810 行的位置)找到:

$extra = array(
 ’showid’ => ‘succeedmessage’,
 ’extrajs’ => ‘<script type="text/javascript">’.
  ’setTimeout("window.location.href =\”.$href.’\';", ‘.$refreshtime.’);’.
  ’$(\’succeedmessage_href\’).href = \”.$href.’\';’.
  ’$(\’main_message\’).style.display = \’none\’;’.
  ’$(\’main_succeed\’).style.display = \’\';’.
  ’$(\’succeedlocation\’).innerHTML = \”.lang(‘message’, $locationmessage).’\';’.
 ’</script>’,
 ’striptags’ => false,
);

修改为:

$ucsynlogin = ”;
if($_G['setting']['allowsynlogin']) {
  loaducenter();
  $ucsynlogin = uc_user_synlogin($_G['uid']);
}
$extra = array(
 ’showid’ => ‘succeedmessage’,
 ’extrajs’ => ‘<script type="text/javascript">’.
  ’setTimeout("window.location.href =\”.$href.’\';", ‘.$refreshtime.’);’.
  ’$(\’succeedmessage_href\’).href = \”.$href.’\';’.
  ’$(\’main_message\’).style.display = \’none\’;’.
  ’$(\’main_succeed\’).style.display = \’\';’.
  ’$(\’succeedlocation\’).innerHTML = \”.lang(‘message’, $locationmessage).’\';’.
 ’</script>’.$ucsynlogin,
 ’striptags’ => false,
);

第5步

在 discuz 注册页注册,看看能不能注册成功,如果可以,那下面就不用看了。

如果注册时不能跳转页面(其实已经注册成功),有可能报错:

s is undefined

修改 static/js/common.js, 大约在第 640 行代码,在其中增加一行(见下面加粗的一行)

try {
 s = $(ajaxframeid).contentWindow.document.XMLDocument.text;
} catch(e) {
 try {
  s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.wholeText;
  if(!s) s = $(ajaxframeid).contentWindow.document.firstChild.textContent; // 增加这行
 } catch(e) {
  try {
    s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.nodeValue;
  } catch(e) {
    s = ‘内部错误,无法显示此内容’;
  }
 }
}

第6步

此时再进行注册,可能会报错:

UCenter info: MySQL Query ErrorSQL:INSERT INTO (此处略) Error:INSERT command denied to user (此处略) for table ‘uh_member’Errno:1142

发现是因为数据库用户的权限不足(我是每一个库建了一个数据库用户)。

如果使用 Navicat Lite,在“管理用户”里可以查看到权限。
在 ucenter 用户下面选择 uchome 库,勾选 Insert,保存。

第7步

我在进行以上操作后,终于同步成功了。

第8步

修改 /uchome/source/do_register.php

在最顶上增加

header("HTTP/1.1 301 Moved Permanently");
header("Location: /bbs/member.php?mod=register");
exit();

这样用户访问原来的 uchome 注册页面,会自动转到 discuz 的注册页。

参考资料:


在家健身(28)

  • 仰卧起坐 50 * 2

友吧今天

  • 解决 discuz 同步注册到 uchome.
  • 今天在远程升级了 uc 1.6,安装 discuz x2.5,有了这几天在本地的测试经验,今天安装很顺利。

 

星期五 晴 3~16℃

discuz 同步注册到 uchome 时报错 "s is undefined"

这里修改 discuz 同步注册到 uchome,但是注册时报错:

common.js (第 648 行)

s is undefined

搜一下,也有人遇到这问题。

未解决。

2012-12-8 更新:

终于解决了。见 这篇日志

第1661天:了解discuz的后台管理

星期四 晴 2~12℃

友吧今天

  • 了解一下 discuz 的后台管理。
  • 还是没有解决 uchome 和 discuz 同步注册的问题,想了个临时的解决方案:
    统一在 uchome 注册,之后第一次登录 discuz 时需要再输入一次用户名密码,以后就会同步了。
    (不能在 discuz 注册,否则新用户无法正常登录 uchome,只能统一在 uchome 注册)
     

星期三 多云 1~15℃

uchome 和 discuz 登录退出时显示乱码的问题

查看文件:

uchome 的 config.php
discuz 的 config_ucenter.php

找到 UC_API

define(‘UC_API’, ‘/ucenter’); // UCenter 的 URL 地址, 在调用头像时依赖此常量

如果登录退出时显示乱码,把这里的值改为用 http 开头试一下,例如:

define(‘UC_API’, ‘http://www.xxxx.com/ucenter’); // 填写你的 ucenter 地址


discuz x2.5 自动激动用户

论坛后台 -> 站长 -> UCenter设置

是否允许直接激活(选择“是”)


discuz x2.5 与 uchome 2.0 同步登录、退出、修改密码

第1步

查看文件:

uchome 的 config.php
discuz 的 config_global.php

把 cookiedomain 都设置成一样,例如:

// config.php
$_SC['cookiedomain']  = ‘.friends8.com’;
// config_global.php
$_config['cookie']['cookiedomain'] = ‘.friends8.com’;

第2步

查看文件:

uchome 的 config.php
discuz 的 config_ucenter.php

看这两个文件的 ‘UC_API’,是否是正确的 ucenter 地址。

define(‘UC_API’, ‘http://www.xxxx.com/ucenter’); // 填写你的 ucenter 地址

一个快捷且保险的方法是:在 ucenter 后台“应用列表”点击编辑,把最下面的“应用的 UCenter 配置信息”分别复制替换到 config.php 和 config_ucenter.php


在家健身(27)

  • 仰卧起坐 50 * 2

友吧今天

uchome 和 discuz 同步登录、退出、修改密码。

还剩下同步注册未解决。

星期日 阴 5~12℃

升级 UCenter1.6 和安装 Discuz! X2.5 时遇到的两个问题

遇到的两个问题:

  1. 升级完成 uc 后,紧接着安装 discuz,安装不成功,页面空白。重启一下 AMPServ,解决。
  2. 安装 discuz 时,提示:

非法用户名,用户名长度不应当超过 15 个英文字符,且不能包含特殊字符,一般是中文,字母或者数字

原来是因为在 ucenter 里把 admin 设置为“禁止的用户名”了,换成别的用户名,或者在 ucenter 里临时取消限制。


在家健身(25)

  • 俯卧撑 30*3;
  • 在小区外慢跑一圈,10 来分钟。

友吧今天

昨晚在本地升级了 UCenter1.6,安装 Discuz! X2.5.

今晚测试一下转换程序,把 UCHome 的数据转换到 Discuz,但是出了一些问题,放弃转换。只要找个方法解决“discuz 和 uch 的同步登录”就行了,没必要转换。