在php中创建独特的民意调查/投票/调查

时间:2009-06-25 04:55:20

标签: php survey

我所说的独特民意调查/投票/调查是,用户只能投票一次。我怎么做?跟踪他们的IP?登录?除了登录,还有什么? (登录是我的最后一个选择,因此除了登录之外,还有什么我可以做的吗?)

3 个答案:

答案 0 :(得分:8)

要限制每人的投票数,您需要跟踪此人。

现在有几种方法可以做到这一点,我将列出它们的优点和缺点。它可以让您决定哪种方法最适合您。

  1. 登录:这将为您提供终极控制。但它对用户来说也有点麻烦。 是您的最后一个偏好
  2. IP:你将如何处理网络代理背后的人?有拨号连接和/或动态IP的人怎么样?
  3. cookies:这适用于短期民意调查,因此您可以将Cookie的到期时间设置为轮询结束时的时间。但是,潜在的缺点是用户(与luser形成对比)将知道如何删除cookie!
  4. openId :虽然此方法与“登录”方法没有太大差别,但这可以使用户免于注册(这实际上是登录最多的部分)。
  5. 编辑:这种情况的问题是您需要解析用户的身份。我认为 OpenID 非常适合。

    干杯,

    JRH。

答案 1 :(得分:2)

您可以随时在自己的计算机上存储Cookie。但要注意,用户可以轻松禁用cookie或修改cookie的内容。没有100%可靠的方法来做你想做的事 - 用户总是可以创建一个新帐户,或者移动到另一台计算机等。

如果你想采用cookie方法,有三种可能性。

  1. 您可以存储一些文字,说明此人已经投票
  2. 您可以存储引用其投票的唯一ID
  3. 您可以存储会话cookie并将其余数据存储在服务器上(可能更安全,因为它们无法编辑数据,只能编辑会话ID,这样做可能会使其失效)。

答案 2 :(得分:0)

最安全的方式是登录系统。

但是如果你不想使用它,我曾经添加一个包含用户IP和浏览器的哈希值将帮助我过滤到更好的程度然后只是简单的IP(浏览器字符串可能会因使用不同的人而不同相同的浏览器,因为安装了版本,操作系统和扩展程序),但如果他们切换浏览器仍然有问题,与cookie相同的问题。 哈希存储在数据库中。