作者magicfx (去南半球度假)
看板PHP
標題[請益] 票數限制
時間Sun Jan 23 13:36:58 2011
我想要設計一個投票系統
使用者不必註冊也不必登入
用IP來判定使用者的身分
每天限制0:00-24:00
針對站內各議題投票
最多只能投一定的票數
好比說10票
超過24:00再用相同的IP瀏覽的話
又可以投10票
前一天沒投完的票 無法累積到第二天
請問這樣的系統該怎麼設計比較好?
我想到一個辦法 但不知道可不可行或是效率好不好
就是用Session記錄使用者的ip
然後下sql query去查出該ip今天已經投了幾票
記錄剩餘票數在session裡
然後該使用者每次投票前
都先檢查session裡剩餘票數是否大於零
每投一票
剩餘票數就減1
我的問題是
如果使用者開多個瀏覽器 這樣是否會有問題
假設同時開兩個瀏覽器
ip一樣
這樣兩個瀏覽器都可以投10票?
所以總計是20票?
如果會有這樣的問題
是否得在每次使用者投票前
都下一次sql query檢查已投票數?
這樣會不會很吃伺服器資源?
有沒有更好的設計呢?
麻煩指點迷津
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.142.199.75
1F:→ knives:如果有人用proxy怎麼辦呢 01/23 13:43
2F:→ magicfx:因為怕註冊登入太麻煩 所以就只好用ip當依據 01/23 13:48
3F:→ magicfx:假設不考慮proxy的話 01/23 13:48
4F:→ magicfx:先不管會不會有多人用同一proxy瀏覽的問題 01/23 13:49
5F:→ arrack:SESSION 不可靠,只能每次都查詢SQL 01/23 13:52
6F:推 kuAIpAI:你省去會員那塊 你會增添更多麻煩 01/23 14:37
7F:推 doom3:yahoo 新聞 下面的心情也是不用會員吧? 01/23 16:30
8F:→ knives:問題Yahoo新聞或是FB的讚 這種又沒啥嚴重性,who care 01/23 21:13
9F:→ rocairforce:cookie如何? 01/23 22:59
10F:→ twsphere:紀錄下userid 跟 時間 比對就好 01/23 23:17
11F:→ twsphere:自刪=.= 沒看到不需註冊。。 01/23 23:18
12F:推 BLCSDLP:會死掉 01/24 02:47