Ucenter通信失败排查方法

定位错误来源:

1. 使用firebug或类似于firebug的工具审查”通信失败“这几个字

2. 会发现包含这几个字的div的同级下方有个script标签,复制该script标签的src值到浏览器的新标签页并打开

3. 这个url指向的是ucenter中app模块的onping操作(ucenter/control/admin/app.php)

onping解析:

1. onping会向url中指定的应用的uc.php发出一个请求,请求的参数为要执行的存在于uc.php中的动作的动作名test以及一个时间戳

2. uc.php收到请求会执行test,并返回1

通信失败排查方法:

根据上面的解析可知,如果通信失败就说明应用中的uc.php并没有正常的返回1,此时就要排查uc.php出了什么问题:

1. 在onping中输出$url(该url为ucenter根据自己设置的应用信息组成的uc.php的url),检查该url是否可以正常访问到应用中的uc.php,如果不能请修改

2. 如果可以正常访问且没有报错,那么就要一步步的排查uc.php的执行状况了

最终的目的就是让$url的输出为1

一个比较怪异的问题:

有时候会发现$url的输出值为 "乱码1",而导致通信失败...

这里的乱码其实是uc.php文件或者uc.php加载的其他文件的bom头,要去除它,就要排查哪个文件中存在这个bom头然后去掉,如果实在找不到,还有个治标不治本的方法:

(为返回状态值做去除bom头的操作)

代码:

  1. function rmBOM($string)
  2. {
  3.     if (substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf))
  4.     {
  5.         $string = substr($string, 3);
  6.     }
  7.     return $string;
  8. }
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注