本文主要是介绍PHP获取IP 文件写入与行修改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
·做了一个投票放在微信订阅号上,通过cookie来实现禁止刷票,这个真是只能防君子不能防小人,出现了恶意刷票;所以最后改为用IP来限制;
因为是一个短暂的活动,就把IP的记录写入了文件,没有再写入表中;
我的验证规则是:同个ID 对应的同一个IP3分钟内只能投一票;
代码写的不是很好,急着上交 ,先看着吧 ,以后再完善
function GetIP() {if ($_SERVER["HTTP_X_FORWARDED_FOR"])$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];else if ($_SERVER["HTTP_CLIENT_IP"])$ip = $_SERVER["HTTP_CLIENT_IP"];else if ($_SERVER["REMOTE_ADDR"])$ip = $_SERVER["REMOTE_ADDR"];else if (getenv("HTTP_X_FORWARDED_FOR"))$ip = getenv("HTTP_X_FORWARDED_FOR");else if (getenv("HTTP_CLIENT_IP"))$ip = getenv("HTTP_CLIENT_IP");else if (getenv("REMOTE_ADDR"))$ip = getenv("REMOTE_ADDR");else$ip = "Unknown";return $ip;
}
$iptxt = fopen("./data/lovewall.txt", "a+");$ip = GetIP();$ifok = $i = 1;while (!feof($iptxt)) { $now = fgets($iptxt);//获取遍历行的内容if(!empty($now)){$now_arr = explode('#',$now);if($now_arr[1]==$ip&&$now_arr[2]==$_G['gp_show']."\n"){$ifok = 0;if($now_arr['0']+180>time()){$return = array('status'=>0,'err_msg'=>'一封情书三分钟内只限赠送一次哦');echo json_encode($return);exit;}else{$all = file_get_contents('./data/lovewall.txt');$new = time().'#'.$ip.'#'.$_G['gp_show']."\n";$update_str = str_replace($now,$new, $all);//替换 间接实现修改file_put_contents('./data/lovewall.txt', $update_str);}}}$i++; }if($ifok){$now = time()."#".$ip."#".$_G['gp_show'];fwrite($iptxt,$now."\n");}fclose($iptxt);
这篇关于PHP获取IP 文件写入与行修改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!