本文實(shí)例講述了php基于登陸時(shí)間判斷實(shí)現(xiàn)一天多次登錄只積分一次功能。分享給大家供大家參考,具體如下:
在網(wǎng)上找了很多的案例,感覺都差不多,有的還比較的繁瑣,就自己嘗試了一下,如何實(shí)現(xiàn)這個(gè)功能
實(shí)現(xiàn)這個(gè)功能我在數(shù)據(jù)表里面增加了一個(gè)字段logintime,表示最后一次的登錄時(shí)間,然后使用一天中的零時(shí)零分零秒和上一次的登錄時(shí)間進(jìn)行比較,如果上一次的登錄時(shí)間大于了這個(gè)時(shí)間點(diǎn)表示已經(jīng)登陸過,如果上一次的登錄時(shí)間小于了這個(gè)時(shí)間點(diǎn),則表示第一次登錄,增加積分
上代碼:
// 判斷是否是一天中第一次登錄
// 上一次登陸的時(shí)間
$lastLogintime = $userinfo['logintime'];
// 一天中的零時(shí)零分零秒
$today = strtotime(date('Y-m-d'));
if($lastLogintime $today) {
// 一天中第一次登錄增加積分(關(guān)聯(lián)更新)
// 注意:使用關(guān)聯(lián)更新數(shù)據(jù)的時(shí)候需要傳遞兩次id
$data['id'] = $userinfo['id'];
$data['userinfo'] = array(
'points' => $userinfo['points'] + C('LOGIN'),
);
$user->relation(true)->where(array('id'=>$userinfo['id']))->save($data);
}
需要注意的是還要修改登錄時(shí)間:
// 更新登錄時(shí)間和登錄ip
$updateData = array(
'id' => $userinfo['id'],
'userinfo' => array(
'logintime' => time(),
'loginip' => getIP(),
),
);
$user->relation(true)->where(array('id'=>$userinfo['id']))->save($updateData);
這樣就實(shí)現(xiàn)了這個(gè)功能
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時(shí)間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- ThinkPHP登錄功能的實(shí)現(xiàn)方法
- ThinkPHP之用戶注冊(cè)登錄留言完整實(shí)例
- PHP使用CURL實(shí)現(xiàn)對(duì)帶有驗(yàn)證碼的網(wǎng)站進(jìn)行模擬登錄的方法
- php中實(shí)現(xiàn)記住密碼下次自動(dòng)登錄的例子
- php中實(shí)現(xiàn)記住密碼自動(dòng)登錄的代碼
- PHP版微信第三方實(shí)現(xiàn)一鍵登錄及獲取用戶信息的方法
- php+MySQL實(shí)現(xiàn)登錄時(shí)驗(yàn)證登錄名和密碼是否正確
- PHP積分兌換接口實(shí)例
- php $_SESSION會(huì)員登錄實(shí)例分享
- PHP+MYSQL會(huì)員系統(tǒng)的登陸即權(quán)限判斷實(shí)現(xiàn)代碼