今天解决了UC同步问题,真心蛋疼,因为测试和生产其实是不同的问题产生不能同步。
UC同步需要 cache 下的 apps.php 来确定是否有其它平台存在,所以问题就以这为中心展开了。。。
生产上 cache 目录不知道被谁删了。。。后果可想而知,所以新建个就好了!晕!
测试是这样的,因为前几天同事要求试用 post 方式进行 UC 通讯,但 post 方式居然不生成缓存文件,打开 client.php 可以看到 uc_api_mysql 函数如下段:
include_once UC_ROOT.'./lib/db.class.php';
include_once UC_ROOT.'./model/base.php';
include_once UC_ROOT."./control/$model.php";
eval("\$uc_controls['$model'] = new {$model}control();");
在 base.php 里会初始化生成缓存文件,而 uc_api_post 函数就直接生成要通讯的数据,然后去 FSOCKOPEN 了:
$postdata = uc_api_requestdata($module, $action, $s);
return uc_fopen2(UC_API.'/index.php', 500000, $postdata, '', TRUE, UC_IP, 20);
根本没有任何机会生成缓存文件,让哥一统的追踪代码啊!就知道这么诡异的问题一定是不一样的错误造成的了,果然被我猜中,人生真无奈,活着真碍眼。。。。。。