鍍金池/ 問(wèn)答/PHP/ php,網(wǎng)站訪問(wèn)ip根據(jù)時(shí)間記錄

php,網(wǎng)站訪問(wèn)ip根據(jù)時(shí)間記錄

業(yè)務(wù)需求,要記錄網(wǎng)頁(yè)的訪問(wèn)記錄,根據(jù)ip來(lái),但是現(xiàn)在加了一條,根據(jù)時(shí)間來(lái)判斷,如果ip地址為202.192.26.26,15點(diǎn)00分訪問(wèn)了,這一個(gè)小時(shí)之內(nèi)都,他訪問(wèn)了這個(gè)網(wǎng)頁(yè)都不會(huì)記錄,但是訪問(wèn)其他網(wǎng)頁(yè)還是會(huì)記錄,這個(gè)數(shù)據(jù)庫(kù)應(yīng)該怎么寫(xiě),php邏輯怎么弄

回答
編輯回答
兮顏

TP5的話可以這樣
數(shù)據(jù)庫(kù)里面有一個(gè)記錄IP的字段 我們就暫時(shí)命名為:ip
記錄訪問(wèn)時(shí)間的字段 create_time
記錄訪問(wèn)節(jié)點(diǎn)的字段: node

打開(kāi)模型自動(dòng)寫(xiě)入時(shí)間戳

$ip = request()->ip();
$node = request()->url();
$result = (new 模型類())->where('ip,$ip)->where('node',$node)->find();
if(null === $result || $result['create_time'] < time()-3600 ){
    (new 模型類())->save([
     'node'=>$node,
     'ip'=>$ip
    ]);
}

應(yīng)該也可以這樣

$currTime = time()-3600;
$result = (new 模型類())->where('ip,$ip)->where('node',$node)->whereTime('create_time','<',$currTime)->find();
if(null === $result){
    (new 模型類())->save([
     'node'=>$node,
     'ip'=>$ip
    ]);
}
2017年1月13日 19:17
編輯回答
空白格

那就根據(jù)訪問(wèn)的URL來(lái)判斷,你們是要做網(wǎng)站的用戶熱度圖吧,數(shù)據(jù)分析下哪些頁(yè)面是受用戶關(guān)注的,其實(shí)如果需求明確了,你可以直接找現(xiàn)成的方案,沒(méi)必要自己整個(gè)原創(chuàng)想著做。

2017年6月7日 15:39