看板 PHP 關於我們 聯絡資訊
負責的圖書館網站有在作期刊點擊次數統計 (把IP、使用者ID、期刊名、時間等資訊寫入DB,再以程式統計) 一開始並沒有禁止短時間內重覆點擊 自從有單位要能統計個人使用次數後 就有灌水的情況出現 上個月實在太離譜了,有一個單位點擊次數爆增10倍多 看來不能不改了... 先想到用SESSION,程式檢查SESSION不存在才寫入log 不過這樣SESSION存在期間,點其它期刊也不會計次 所以又想到把期刊名放在SESSION裡 不過這樣交替點不同期刊還是能灌次數... 不能光看IP,因為來自同單位的USER都同IP 我的情況怎麼作比較好呢? 還有session能用函式訂有效時間長短嗎? 放一段log給各位看看可能比較容易瞭解: id ip date time access_jname access_user 1500980114, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980115, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980148, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980149, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980151, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980152, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18-262 1500980153, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18-262 1500980212, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18-262 1500980213, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18-262 1500980214, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18-262 1500980215, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980216, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980264, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980265, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980266, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 1500980267, 192.168.161.85, 20090616, 09:49, 期刊名太長略, 18- 已省略部分,114~267都是6/16 09:49點的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.241.104.166
chrisQQ :所以你想要的情境是?哪種情況的點擊才算? 07/21 09:07
chrisQQ :啊,我看懂了@@ 07/21 09:08
chrisQQ :如果不考慮 session 儲存超多資訊的情況下… 07/21 09:09
chrisQQ :那就把期刊編號和時間都存進去就好囉 07/21 09:09
chrisQQ :如果 session 中有現在瀏覽的期刊編號的話,就檢查 07/21 09:10
chrisQQ :session 中該期刊上次瀏覽的時間,如果差值大於某數 07/21 09:10
chrisQQ :才判定為有效點擊,然後更新此期刊的點閱時間 07/21 09:11
chrisQQ :session 中看是要用二維陣列還是一維陣列來存都可以 07/21 09:12
arrack :寫入資料庫吧,SESSION關掉BORWSER就沒用了 07/21 09:23
arrack :或是禁止COOKIES,也可以洗得爽爽的 07/21 09:23
arrack :不能看IP的話,就看帳號?SESSION的timeout可以拉長 07/21 09:24
chrisQQ :寫入資料庫是不是就要存 使用者*期刊數 的 record 啊 07/21 09:25
chrisQQ :雖然 session 也是一樣… 這樣就要為資料庫加上定期 07/21 09:26
chrisQQ :清除過期 record 的功能了 :p 07/21 09:26
chrisQQ :如果要 login 才能點閱的話 session 應該就夠了… 07/21 09:30
chrisQQ :如果 guest 點閱也算的話… 存到資料庫好像也無用… 07/21 09:30
chrisQQ :關掉 browser 清除 cookie 似乎就無敵了 XD 07/21 09:30
arrack :一般來說 這種部分應該都是login後才能看得吧? 07/21 09:33
arrack :應該還會區分權限...不過同單位同IP是有點誇張 07/21 09:33
arrack :如果是有裝PORXY,應該是非匿名的,有機會可以取得 07/21 09:34
arrack :原本的IP,參考之前的GETIP 07/21 09:34
arrack :因樣大部分都是有PRIVATE IP 可以去區分 07/21 09:35
arrack : 為 07/21 09:35
chrisQQ :其實我覺得作到這樣就跟正版遊戲加上 starforce 一樣 07/21 09:36
arrack :寫資料庫是因為遇過無聊人士一直登入 洗次數之類的 07/21 09:36
chrisQQ :的感覺了… XD 唉,最近的正版遊戲都把玩家當小偷… 07/21 09:37
chrisQQ :也是… 遇到這種的不擋他又不行… 07/21 09:37
ThiefFan :哇 好多建議 謝謝各位~~~(慢慢消化) 07/21 11:20
ThiefFan :初期沒有個人使用統計 的確未login也算點擊 07/21 11:21
※ 編輯: ThiefFan 來自: 210.241.104.166 (07/21 11:30)
ThiefFan :放一段log給各位參考 07/21 11:30
roga :#16tMVBwg 參考看看,兩年前我問的 XD 07/21 11:59
arrack :一百多下 應該是用F5辦到的XD 07/21 12:38
ThiefFan :補充18是單位號 226是使用者號 18-就是沒登入的 07/21 13:38
ThiefFan :放一起好像很白痴...orz 07/21 13:38
ThiefFan :roga大的方式好像可以參考 研究一下... 07/21 13:39
ThiefFan :不過roga大的方式卡同一個問題 就是同IP不同USER 07/22 11:55
ThiefFan :點同一本期刊時不會被計算到... 07/22 11:55
ThiefFan :還是去研究一下GETIP...囧 07/22 11:59
roga :妳分兩個欄位存 user id 和 期刊 id 不就好了 07/22 15:39
roga :還有,要統計個人點擊數,其實不必要紀錄IP.. 07/22 15:41
roga :重點應該放在"誰"在"何時" "看了什麼" 07/22 15:41
ThiefFan :記錄IP是要作單位別統計 因有不登入使用的情形 07/22 16:22
ThiefFan :如所附log的 18- 可能是同單位不同人 07/22 16:23
ThiefFan:對了 最後是用了roga大的方式 insert前先檢查今日次數 01/19 09:15