此文章来源于后羿之弓,转载请注明出处

因需要,今天下载了ucenter和uchome来安装,结果老是出问题,完全感觉不到装php开源程序的乐趣。但又不得不装上他们去研究一些东西,所以只能跑到代码里去跟踪了,在此将结果分享一下。

ucenter安装后登录不进去后台,原因在于cookie中的sid冲突了。因为我用的顶级域名里已经用了sid这个COOKIE,所以导致它的代码在检测并分析$username时出现了问题。

uchome安装时,第2步是设置UCenter信息,设置完后,居然不能正确跳转到下一步去执行安装程序,而是直接跳到顶级域名里了。原因在于安装程序里去检测你的ucenter,并尝试连接和验证,但是因为我是在本地测试,所以gethostbyname()并非得到真正的地址,解决方法有两种
1.修改测试服务器上的HOST
2.修改代码,代码如下:

  1. if(empty($ucapi) || !preg_match("/^(http:\/\/)/i", $ucapi)) {
  2.         show_msg('UCenter的URL地址不正确');
  3.     } else {
  4.         //检查服务器 dns 解析是否正常, dns 解析不正常则要求用户输入ucenter的ip地址
  5.         if(!$ucip) {
  6.             $temp = @parse_url($ucapi);
  7.             $ucip = gethostbyname($temp['host']);
  8.             if(ip2long($ucip) == -1 || ip2long($ucip) === FALSE) {
  9.                 $ucip = '';
  10.             }
  11.         }
  12.     }
  13.     $ucip = '192.168.10.82';//添加了这一行