你现在的位置:首页 > PHP网站建设知识库 > UCenter Home > 正文

修改头像后UCHOME里更新时间的同步

一直困惑用户头像的管理,因为有些用户会用非法图片做头像,而据我所知UCENTER和UCHOME都没有记录头像更新时间
今天稍微检查了一下代码,实现了这个功能,在此分享一下,踩不踩无所谓,就当自己备忘吧。

在UCHOME 根目录下新建文件 avatorupdate.php (不建议用记事本,因为记事本有UTF8的BOM问题),内容如下:
<?php
if($_GET['authkey']==998877665544332211 && is_numeric($_GET['uid'])){

      //包含必要的库
        include_once('./common.php');
        global $_SGLOBAL;
                $_SGLOBAL['db']->query("UPDATE ".tname('space')." SET updatetime=".$_SGLOBAL['timestamp']." WHERE uid='".$_GET['uid']."'");
}
?>

找到UCENTER 文件夹,打开/control/user.php
这时可以用工具查找关键字  if($success) {   我的是在第392行,你的就不知道了,自己找一下吧。
这个判断是包含在function onrectavatar()函数内的,在这个函数即将结束的时候
作用很简单,就是返回文件更新成功与否,是用来通知FLASH的。

把这个if(){}else{}改成如下:
if($success) {
        //向FLASH发送XML信息通知上传成功,FLASH收到消息后自动刷新页面,故在此增加头像更新动作
        //调用UCHOME下的接口更新头像记录,最好的方法是修改FLASH,让页面刷新的时候带参数
        require_once 'lib/Snoopy.class.php';
        $client = new Snoopy();
        @$client->fetch("http://localhost/home /avatorupdate.php?uid=$uid&authkey=998877665544332211 ");
        return '<?xml version="1.0" ?><root><face success="1"/></root>';
        } else {
        return '<?xml version="1.0" ?><root><face success="0"/></root>';
}
注意,红色字的地方是您的UCHOME的路径,蓝色的数字串是跟上面的接口文件里对应的密匙,自己改一下就行了。

使用方法:
在UCHOME里更新头像后,space表里的更新时间被修改,可以通过UCHOME后台 用户管理 里查找,
查找方式: 选择头像后的下拉菜单里的“上传头像” 选择 结果排序里的 “更新时间” 然后点搜索,这样结果的用户列表就是按已上传头像的用户且按最后更新时间排序了。

备注:
在UCENTER里我用到了Snoopy.class.php这个类库,这个类库网上到处都有的下,官方下载地址是 http://sourceforge.net/projects/snoopy/
下载下来后把Snoopy.class.php这个文件放到ucenter的lib目录下吧 这个目录里都是库文件