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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

UC通信问题故障解决方法--包括头像上传和注册登录故障

[复制链接]
风乱流年 发表于 2012-8-28 22:54:45 | 显示全部楼层 |阅读模式
本帖最后由 风乱流年 于 2012-8-29 16:58 编辑
UC通信问题故障解决方法--包括头像上传和注册登录故障
转自站帮网http://www.zhanhelp.com/thread-4837-1-1.html


UCenter通信失败是经常遇见的问题,同时也会给站点带来很多问题,比如不能上传头像,注册提示错误,登录密码不正确等一系列的问题,有时候UCenter后台应用里面显示UC通信正常了,但还是会出现一些莫名其妙的问题。今天在这里把收集的UC通信的问题都一样拿出来分享下。

UCenter通信异常,一般有下面的一些症状:
1、登陆提示密码不正确或者没响应;
2、头像无法上传;
3、注册时提示用户名小于3;
4、注册后UCenter里面没有用户;
5、各应用不能同步登陆和退出;
6、UC里面提示通信失败
7、头像不显示了
8、短消息异常
9、登录后台--点击UCenter显示404或者其他错误。


还有很多各种各样的情况,这里就不一一说明了

UC通信的解决方案有很多,但万变不离其宗,就是2个配置文件config目录下的config_ucenter.phpuc_server\data目录下的config.inc.php,和后台2个位置后台--站长--UCenter设置UCenter--应用管理--详情--编辑应用,具体4处如下图所示。




检查UC通信问题的四处五点:

四处5点UCenter--应用管理--详情后台--站长--UCenter设置config_ucenter.phpconfig.inc.php
1、Ucenter应用 ID固定UCenter 应用 ID必须与前同define('UC_APPID', '必须与前同');define('UC_APPID', '必须与前同')
2、URL应用的主 URL即论坛地址UCenter 访问地址define('UC_API', 'http://www.zhanhelp.com/uc_server')
3、UCenter 通信密钥4处一致4处一致define('UC_KEY', '4处一致');define('UC_KEY', '4处一致');
4、UCenter IP 地址服务器的IP服务器的IPdefine('UC_IP', '服务器的IP');
5、UCenter 表前缀UC数据库表前缀define('UC_DBTABLEPRE', '`dx25`.pre_ucenter_');UC数据库表前缀define('UC_DBTABLEPRE', 'pre_ucenter_');UC数据库表前缀

一般网站目录权限设置正确,直接在后台修改2处相关设置即可解决,如果搬家后出现,需要检查下配置文件的表前缀,如果后台设置后无效需要把2个配置文件下载本地来对比检查。


下面是几个问题的解决方案

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

IDC866.com 发表于 2012-9-1 00:06:41 | 显示全部楼层
通讯问题 其实这样就完事了。  

根本不用看那两个 config 文件。  编辑那两个文件也是没用的。

只需要在后台修改就OK了。  (只改文件是不会改数据库里的)




通讯问题  和ID 问题,,都会出现这样的头像问题。

空间函数限制?  头像上传正常吗?  头像能传就没问题。

不能传就照这个去设置一下,  如果还不行,你可抓一下这两个图大家看看:

解决方法,看图:
               

回复

使用道具 举报

Failure 发表于 2012-8-28 22:59:56 | 显示全部楼层
这个是很简单的东西 细心点的人都可以找到
回复

使用道具 举报

 楼主| 风乱流年 发表于 2012-8-28 23:02:07 | 显示全部楼层
情况一、注册时提示用户名小于3或者密码不匹配的解决方法

解决方法

  1、检查UC通信是否正常,具体方法就参考上面的说明检查这5处是否一致对应。

  2、如果检查完毕后还出现问题,在切换到默认模板检查是否模板注册表单导致。曾经x2出现该问题的分析详情请看:

出现这样的情况首先可能是UC通讯的问题,检查UC里面应用是否通讯正常,通讯正常的情况下做以下操作

1.打开“根目录/template/default/member/register.htm”这个文件。

2.在文件中搜索“id=”{$this->setting['reginput']”,会找到四个地方,分别是:
1)<td><input type=”text” id=”{$this->setting['reginput']['username']}” name=”" …
2)<td><input type=”password” id=”{$this->setting['reginput']['password']}” name=”" …
3)<td><input type=”password” id=”{$this->setting['reginput']['password2']}” name=”" …
4)<td><input type=”text” id=”{$this->setting['reginput']['email']}” name=”" …
将四处id的值(如{$this->setting['reginput']['username']})分别拷贝给对应的name。

3.这四处input中,name都是”",所以在填写完注册信息后,submit到后台去时,后台通过name去拿填写的数据会拿不到任何东西。而注册前的验证会检查注册信息是否完备,第一个input是username,当它检查到输入内容为空时,当然会提示“抱歉,您输入的用户名小于3个字符”。

4.这四处应该都要改,如果只是改提示的“用户名”,其他不动,猜测会有“密码为空或者包含非法字符”之类的提示,有兴趣的朋友可以试一下。

5.我注册第一个用户时没有出错,在修改了后台某些配置后才出现这个问题,有网友说在原来的register.js中会将input空间的name设置成和id一样的值,但现在不起作用了,这个问题就产生了。



  3、如果还是出现该问题,请检测后台--全局--防灌水设置--注册表单名称设置,详情请看:
注册时提示用户名小于3个字数,这个问题也可能是因为UC通信失败导致的,不管是什么原因导致的,如果大家遇到这样的问题可以先检查UC通信是否正常,如果UC的ID/KEY/URL/IP和后台-站长-UCenter里面的一致说明UC通信是正常的,然后在使用下面的方法修复解决:



红圈中的表单名称 设置成自定义的

例如  username     改成   username1
         password    改成   password1
         password2  改成   password3
         email    改成   email1

大家不要担心出错,多尝试去解决问题,你的问题总会解决掉的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| 风乱流年 发表于 2012-8-28 23:03:34 | 显示全部楼层
情况二、头像无法上传,出现了错误提示:access denied for agent changed

解决方法:UC通信失败导致,根据UC的分析方法检查这5处是否一致对应。

情况三、头像无法上传,提示磁盘I/O错误

解决方法

  1、检查目录权限,检查 UC_server 目录下
  ./index.php 是否存在且完整
  ./data/avatar/ 是否可写
  ./data/tmp/ 是否可写

  2、设置好目录权限之后,依旧没有解决问题,全新下载的安装包,重新上传覆盖UC所有的文件。
回复

使用道具 举报

 楼主| 风乱流年 发表于 2012-8-28 23:09:16 | 显示全部楼层
本帖最后由 风乱流年 于 2012-8-28 23:11 编辑

情况四、更新缓存提示:notelist where closed="0" AND app1<"1" AND app1>"-5"

解决方法:检查后台的应用ID是否一致
手动添加uc应用及其 提示notelist表缺少appX字段的处理方法
有些用户不小心将uc中的应用给删除了,这时候我们可以通过手动添加方式,将删除的应用给找回。
首先:

填写好途中的 选项,并勾选 “是否开启同步登录”、“是否接受通知”
这是时候也许你会发现通信已经成功。但是实际上,添加还没有结束哦
注册的时候也许报这样的错误:

提示  notelist表缺少 app1字段,下面我们来分析原因:
因为 我们将uc中的应用给删除了,notelist中的对应的app1(应用的appid对应)字段也被删除。但是我们的配置文件没与及时更新,如:config_ucenter.php 中的 UC_APPID 、 uc_server/data/cache/apps.php 中的 appid没有及时更新(报 缺少app1字段正式因为 apps.php中没及时更新) 程序读取的通信密钥和appid都是读取 apps.php的 信息,有时候用户的通信失败也可能是此处没及时更新导致。提示:data/cache/apps.php 文件是需要写入权限的。
现在我们知道了,还有两处需要更改。config_ucenter.php 中的 uc_appid 可以直接编辑此文件将其更改为与uc应用对应的 appid。或者直接在论坛后台 --站长--ucenter设置中更改。
uc_server/data/cache/apps.php 文件我们直接可以在 通过更新缓存(uc中心 --更新缓存-勾选)  

在此处更新缓存,上面提示到如果 apps.php文件如果没有写入权限,更新缓存也是没用的

手动添加uc应用提示notelist where closed="0" AND app1<"1"
有些用户不小心将uc中的应用给删除了,这时候我们可以通过手动添加方式,将删除的应用给找回时会提示提示notelist where closed="0" AND app1<"1" AND app1>"-5",这个主要是UC应用的ID和论坛  站长UCenter设置里面的ID不同导致的。

注册的时候也许报这样的错误:


提示:notelist where closed="0" AND app1<"1" AND app1>"-5",notelist表缺少 app1字段,下面我们来分析原因:

我们将uc中的应用给删除了,notelist中的对应的app1(应用的appid对应)字段也被删除。但是我们的配置文件没与及时更新,如:config_ucenter.php 中的 UC_APPID 、 uc_server/data/cache/apps.php 中的 appid没有及时更新(报 缺少app1字段正式因为 apps.php中没及时更新) 程序读取的通信密钥和appid都是读取 apps.php的 信息,有时候用户的通信失败也可能是此处没及时更新导致。提示:data/cache/apps.php 文件是需要写入权限的。

现在我们知道了,还有两处需要更改。config_ucenter.php 中的 uc_appid 可以直接编辑此文件将其更改为与uc应用对应的 appid。或者直接在论坛后台 --站长--ucenter设置中更改。

uc_server/data/cache/apps.php 文件我们直接可以在 通过更新缓存(uc中心 --更新缓存-勾选)



在此处更新缓存,上面提示到如果 apps.php文件如果没有写入权限,更新缓存也是没用的。如果还提示notelist表缺少字段,请清空 uc中的通知列表 、并重新登录后台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| 风乱流年 发表于 2012-8-28 23:12:39 | 显示全部楼层
情况五、头像突然都显示默认头像了,不现实头像了

解决方法:检查uc_server\data\avatar目录下头像是否存在,检查下后台--站长--UCenter设置的URL是否正确。
情况六、进入后台UCenter显示404或者其他错误

解决方法:检查下后台--站长--UCenter设置的URL是否正确。
情况七、退出登录的时候显示一段404错误

解决方法:检查下后台--站长--UCenter设置的URL是否正确。
特殊情况、UC通信失败,但注册会员正常、上传头像正常、UC用户也存在、发帖发短信正常,那么说明你的UC通信正常,可能是服务器环境导致判断出错,一般情况在使用非本地数据库的时候会出现。


回复

使用道具 举报

 楼主| 风乱流年 发表于 2012-8-28 23:22:29 | 显示全部楼层
解决方法总结如下:
1、检查站点配置文件中的 UC_APPID 与 UCenter 中的应用ID是否一致
以Discuz! X2.5为例,配置文件的目录为:./config/config_ucenter.php 找到如下图所示的位置

这里的值必须与 UCenter 后台中应用ID的值保持一致,如下图所示。




2、应用的主 URL 地址即站点地址必须与 UCenter 后台的应用地址相同
比如站点的访问地址为:http: //discuz.dismall.com ,那么 UCenter 后台该应用的地址也必须是 http: //discuz.dismall.com。


3、配置文件中的通信密钥必须与 UCenter 后台的通信密钥保持一致
配置文件的通信密钥可以在./config/config_ucenter.php 中看到。


这里的密钥必须和 UCenter 后台的保持一致。


4、UCenter IP 地址要与服务器的 ip 地址相同,可以在配置文件中修改 IP 地址,如图


同理,UCenter 后台的应用 IP 地址也要和配置文件中的一致。

应用管理中,编辑站点应用即可看到如下图所示:


5、检查配置文件中的表前缀是否填写正确,位置在./config/config_ucenter.php 中



6、fsockopen函数被禁用
检查 php 环境,是否禁用了 fsockopen 函数,可以通过 php.ini 来查看该函数的情况,在这个文件中查找
  1. allow_url_fopen
复制代码
将其改为
  1. allow_url_fopen = On
复制代码
7、应用域名301重定向的情况
301重定向可以用fsockopen函数进行测试:用下面的代码
  1. <?php
  2. $fp = fsockopen("[url=http://www.zhanhelp.com]www.zhanhelp.com[/url]", 80, $errno, $errstr, 30);
  3. if (!$fp) {
  4.     echo "$errstr ($errno)
  5. \n";
  6. } else {
  7.     $out = "GET / HTTP/1.1\r\n";
  8.     $out .= "Host: [url=http://www.zhanhelp.com\r\n]www.zhanhelp.com\r\n[/url]";
  9.     $out .= "Connection: Close\r\n\r\n";
  10.     fwrite($fp, $out);
  11.     while (!feof($fp)) {
  12.         echo fgets($fp, 128);
  13.     }
  14.     fclose($fp);
  15. }
  16. ?>
复制代码
将对应的域名更改为 UCenter 应用中的域名,然后访问此测试脚本,返回的内容有 301 permanently 内容,通信也会失败。
您只要取消重定向即可,一般是 301 跳转规则有问题。

通过以上方法,便可以解决通信失败的问题。通常只要目录权限正确,配置文件和后台设置按照上面方法操作通信就不会出现问题了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

不太行 发表于 2012-8-30 13:09:10 | 显示全部楼层
当有两个应用时,config.inc.php里的define('UC_KEY')要跟谁一致???
回复

使用道具 举报

乐游侠 发表于 2012-8-30 20:24:28 | 显示全部楼层
X2系统,后台打开uc页面是空白怎么处理?
回复

使用道具 举报

feiyu9693 发表于 2012-8-31 13:32:59 | 显示全部楼层
Mark~·
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 17:29 , Processed in 0.049798 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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