Php 防止在特定时间内从同一IP提交多个表单
我有下面的脚本,它创建了两个会话变量来存储IP和表单提交时间。我想知道,如果同一IP在60秒内提交表单超过3次,是否可以显示消息Php 防止在特定时间内从同一IP提交多个表单,php,Php,我有下面的脚本,它创建了两个会话变量来存储IP和表单提交时间。我想知道,如果同一IP在60秒内提交表单超过3次,是否可以显示消息 <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { session_start(); function getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from sha
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
session_start();
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$_SESSION['ip'] = getRealIpAddr();
$_SESSION['time'] = date(DATE_RFC822);
// function to prevent multiple form submissions / bot
}
我希望您知道两个不同的会话可能具有相同的IP。。例如,人们从不同的浏览器连接到您的网站,或者人们从内部网连接到您的网站。这是一个非常有效的观点。我想知道我是否能以某种方式区分这两种情况。你应该做的是不允许一个特定会话产生两个或多个后续请求,而不是基于IP。