> 백엔드 개발 > PHP 튜토리얼 > 投票系统 有人刷票 求大神帮忙解决解决方案

投票系统 有人刷票 求大神帮忙解决解决方案

WBOY
풀어 주다: 2016-06-13 11:26:30
원래의
1189명이 탐색했습니다.

投票系统 有人刷票 求大神帮忙解决

本帖最后由 u010603569 于 2013-06-21 08:55:59 编辑
我这投票是一个IP地址在一个小时只能只能对一个ID投一票,但是那些刷票机器为什么能绕过一个小时,同一个IP能在一个小时之内不断的写入数据库,这点让我很不解,一个小时的时间限制完全对刷票机器不起作用,求大神帮忙解决,验证码很不友好,能不能有什么好方法解决这个问题
[size=36px][/size]
<?php<br />error_reporting(0);<br />session_start();<br />require_once 'config.php';<br />require_once COMMON_PATH.'Common.php';<br />$common = new Common();<br />date_default_timezone_set ('Asia/Shanghai');<br />$weil = strtotime("2013-08-07 23:59:59"); <br />$now = time();<br />if($weil-$now < 0){//投票时间过期<br />	echo 0;<br />	exit;<br />}<br /><br />$ip  = $common->getClientIp();<br />$id  = $_POST['id'];<br />$ipid=$ip.$id;<br />if($_SESSION['ipid']==$ipid||$_COOKIE['ipid']==$ipid){<br /><br />//$array = array('48','49','67','47'); <br />//if ( in_array($id,$array) ) {<br />		echo 2;<br />	} else {<br />		$tbName = TB_NAME;<br />		$limit_time = 3600;<br />		$arr = $common->getItems('id,addTime','20130618_ztao_jtsjip','id','desc',"where tpId='$id' and ip='$ip'");<br />		$row = false;<br />		if (count($arr) > 0) {<br />			$row = $arr[0];<br />		}<br />		if(!$row){<br />				$common->insertItems('20130618_ztao_jtsjip','tpId,ip,addTime',"'$id','$ip','$now'");<br />				$res = $common->updateItems("$tbName",'voteNum=voteNum+1',"$id");<br />				$_SESSION['ipid']=$ipid;<br />				setcookie("ipid","$ipid",time()+$limit_time);<br />				if($res == true){<br />					echo 1;//投票成功 <br />				}else{<br />					echo 3;<br />				}<br />			<br />		}else if(($now-$row['addTime'])>$limit_time){<br />			$common->insertItems('20130618_ztao_jtsjip','tpId,ip,addTime',"'$id','$ip','$now'");<br />			$res = $common->updateItems("$tbName",'voteNum=voteNum+1',"$id");<br />			$_SESSION['ipid']=$ipid;<br />			setcookie("ipid","$ipid",time()+$limit_time);<br />			if($res == true){<br />				echo 1;<br />			}else{<br />				echo 3;<br />			}<br />		}else if(($now-$row['addTime'])<$limit_time){<br />			echo 2;<br />		}else{<br />			echo 3;<br />		}<br />}<br /><br />?><br />
로그인 후 복사


投票系统 PHP session

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿