慕容的工作随笔

慕容的工作随笔

记录学习和工作

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. }

评论 (0)

还没有评论,来做第一个吧。

发表评论

提交后需管理员审核通过后显示