一直困惑用戶頭像的管理,因爲有些用戶會用非法圖片做頭像,而據我所知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目錄下吧 這個目錄裏都是庫文件
轉自:http://blog.sina.com.cn/s/blog_3f1a25310100fpgo.html
|