导航

专业做网站建设公司、网页设计制作、百度优化推广、网站维护托管等网站相关业务,欢迎咨询。

域名空间 | 服务领域  网站建设1500元全包。做完验收修改到满意为止可淘宝付款有保证!
当前位置: 邯郸网站建设 > 网页设计制作百科 > 常见问题

php建设的网站如何获得真实IP地址及30秒内多次提交表单无效


来源:邯郸煜阳网络公司  时间:2021-04-26 23:09    
php建设的网站如何获得真实IP地址及30秒内多次提交表单无效呢?近期同一个本地客户做一个竞价网站页面,在页面的下方有个提交表单的功能,客户要求,防止同IP地址恶意下单功能,我们技术人员花费很多的功夫 终于整理出了如何获得真实IP地址及30秒内多次提交表单无效的问题,也就是说我们解决了客户说的防止同IP地址恶意下单的功能,下面我贴出来给大空学习下。


<?php
function get_real_ip()
 
{
 
    $ip=FALSE;
 
    //客户端IP 或 NONE
 
    if(!empty($_SERVER["HTTP_CLIENT_IP"])){
 
        $ip = $_SERVER["HTTP_CLIENT_IP"];
 
    }
 
    //多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空
 
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
 
        $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
 
        if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
 
        for ($i = 0; $i < count($ips); $i++) {
 
            if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
 
                $ip = $ips[$i];
 
                break;
 
            }
 
        }
 
    }
 
    //客户端IP 或 (最后一个)代理服务器 IP
 
    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 
}
 
function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
function show_message($message,$rurl=""){
echo "<div style='position: absolute;width:400px;height:auto;left:50%;top:50%;margin-left:-200px;margin-top:-100px;border:3px dashed #f00;font-size:14px;text-align:center;padding: 46px 0;'>".$message;
if(!empty($rurl)){
header("refresh:1;url=".$rurl);
}else{
echo "<script language=JavaScript> location.replace(location.href);</script>";
}
echo "</div>";
}
?><?php 
require("../config.php");
$con = mysqli_connect($db['host'],$db['username'],$db['password'],$db['dbname'],$db['port']);
if (!$con) { 
  printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error()); 
  exit; 
}
$con->set_charset('utf8'); //设置查询结果编码
 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
 
if (isset($_COOKIE['formFlag'])) {
  exit('请不要重复提交');
}
  
// 处理数据
  
// 30秒内重复提交无效
setcookie('formFlag', time(), time() + 30);
 
if($_POST['action']=="add"){
 
数据库连接部分
 
show_message("添加成功!","68f23406c6cecf84.php");
exit();
}
}
mysqli_close($con);
 
?>