ホームページ >バックエンド開発 >PHPチュートリアル >誰かが投票システムで投票をスワイプしています。解決策を見つけるのを手伝ってください。

誰かが投票システムで投票をスワイプしています。解決策を見つけるのを手伝ってください。

WBOY
WBOYオリジナル
2016-06-13 12:46:14957ブラウズ

誰かが投票システムで投票をスワイプしています。解決するのを手伝ってください

この投稿は、u010603569 によって 2013-06-21 08:55:59 に最終編集されました
私の投票では、1 つの IP アドレスが 1 つの ID に対して 1 時間に 1 回しか投票できないのですが、なぜこれらの投票ブラッシング マシンが 1 時間をバイパスし、同じ IP が 1 時間以内にデータベースに書き込み続けることができるのでしょうか?混乱しています。チケットスワイプマシンでは 1 時間の制限がまったく機能しません。確認コードが非常に不親切です。この問題を解決する良い方法はありますか? ][/サイズ]

<?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 セッション
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。