作者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