2014-05-13 29 views
-1

我有一个应用程序与人们可以投票的图像,我想检查用户的IP,不允许他再次投票。什么是最好的办法呢,我应该得到的IP和填写.txt文件,每次用户试图投票生病检查该文件,如果该IP不在文件中允许他?还是有更好的解决方案获取用户的IP地址,并检查是否让他再次投票php

回答

3

可以得到用户的是这样的:

$users_ip = $_SERVER['REMOTE_ADDR']; 

不要使用文本文件(因为这将有损于你的硬盘,太多的I/O);而是使用数据库。

当用户到达投票脚本:

  • 检查这个IP有一个记录在你的数据库表
  • 如果IP有一个记录,检查当用户最后一次投票,并比较当前时间
  • 如果从他的最后一投的时间跨度>它应该是什么,让他投,更新数据库表为IP“last_vote”

  • 如果用户没有在数据库记录(第一选票) ;用ip和当前时间戳插入分表表格行

+0

谢谢你看起来像一个坚实的解决方案,只有你有一个额外的信息。如果用户投票,他不能再投票,我想让我的生活更轻松:),只是把IP放在数据库中,然后检查IP是否在数据库中有记录,如果它已经通知用户他已经投票。 – Alexandros

0

您还可以将cookie存储一段时间间隔。如果用户为某个问题投票,那么就为该问题保存一个特定的cookie。

setcookie('voted'.$_POST['qid'], 'yes', time() + 4800 , "/"); 

如果问题是新的,那么用户可以投票。

+0

基于cookie的验证是坏主意。用户可以使用不同的浏览器或使用私人模式(FireFox)或隐身模式(Chrome)跳过/跳过它。 – Latheesan