php限定post次数,比如一天只能post一次
如题,想做个在线提交表单的功能,考虑到恶意频繁提交,想限定一台电脑一天只能提交一次,比如说post过来的时候得到ip然后写入ip跟提交时间,当再次来提交的时候对比数据进行...
如题,想做个在线提交表单的功能,考虑到恶意频繁提交,想限定一台电脑一天只能提交一次,
比如说post过来的时候得到ip 然后写入ip跟提交时间,当再次来提交的时候对比数据进行判断
问题:
怎么样获取到这个ip呢,有外网Ip跟内网ip两种,内网ip在不同的外网中可能相同,比如192.168.1.100
这个ip很多,获取内网ip的方法是否可行?外网那就更不行了,多台电脑共一根网线那就不能了,
怎么弄呢,亲们 给点意见呗
---------------------==问题补充==-----------------
session肯定也不行,浏览器关了就不行,况且用软件的话那根本就没有难度 展开
比如说post过来的时候得到ip 然后写入ip跟提交时间,当再次来提交的时候对比数据进行判断
问题:
怎么样获取到这个ip呢,有外网Ip跟内网ip两种,内网ip在不同的外网中可能相同,比如192.168.1.100
这个ip很多,获取内网ip的方法是否可行?外网那就更不行了,多台电脑共一根网线那就不能了,
怎么弄呢,亲们 给点意见呗
---------------------==问题补充==-----------------
session肯定也不行,浏览器关了就不行,况且用软件的话那根本就没有难度 展开
2个回答
展开全部
第一,使用IP限制的话,你只能获得对方用户的外网IP,那么网吧里面所有电脑的IP是相同的,一天之内这个网吧只有一台电脑可以提交。如果你的客户主要是家庭用户,那么可以使用IP限制,否则IP限制会把许多无辜的人限制了。
获得IP的方法:
$ip=getenv('REMOTE_ADDR');
IP限制还是可以破的,家庭宽带用户断往重新拨号,会得到新的IP。
再次确认,服务器无法获得192.1.1.100这样的内网IP地址的。
第二,除了IP之外,还可以使用COOKIE限制,在客户端的浏览器保存一个有效期一天的COOKIE,程序检测COOKIE进行限制。这个方法可以解决IP限制对网吧限制过严的问题,但是无法解决聪明的客户自己清除浏览器COOKIE的方法。
设置有效期一天的COOKIE的方法:
setcookie("TestCookie", $value, time()+24*3600);
以上两个方法都各有千秋,你可以结合起来做一个稍微更合理的,但是都不可能完美。
获得IP的方法:
$ip=getenv('REMOTE_ADDR');
IP限制还是可以破的,家庭宽带用户断往重新拨号,会得到新的IP。
再次确认,服务器无法获得192.1.1.100这样的内网IP地址的。
第二,除了IP之外,还可以使用COOKIE限制,在客户端的浏览器保存一个有效期一天的COOKIE,程序检测COOKIE进行限制。这个方法可以解决IP限制对网吧限制过严的问题,但是无法解决聪明的客户自己清除浏览器COOKIE的方法。
设置有效期一天的COOKIE的方法:
setcookie("TestCookie", $value, time()+24*3600);
以上两个方法都各有千秋,你可以结合起来做一个稍微更合理的,但是都不可能完美。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询