本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。
php怎么限定用户只能提交一次?
php限定post次数,比如一天只能post一次:
第一,使用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);
以上两个方法都各有千秋,你可以结合起来做一个稍微更合理的,但是都不可能完美。