ホームページ >バックエンド開発 >PHPチュートリアル >見てください、兄弟、私が「いいね」をするとき、各 IP が各記事に 1 回だけ「いいね!」できるように制限しています。コードを実装するにはどうすればよいですか?

見てください、兄弟、私が「いいね」をするとき、各 IP が各記事に 1 回だけ「いいね!」できるように制限しています。コードを実装するにはどうすればよいですか?

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

教えてください。いいねをするとき、各 IP アドレスで各記事に 1 回だけいいねをするように制限しています。コードを実装するにはどうすればよいですか?
//フロントエンド ajax がデータを送信します

     <input type="button"  onClick="change_love({$article.article_id})" value="赞一下"/></a><br />      <!--<input type="button" value="点赞" onClick="zan()"/>--><br />      {$article.love}</p><br />    </div><br />  </div><br /></section><br /><script><br />function change_love(article_id)<br />{<br /> //var Lastsend = document.getCookie('ECS_auction_Lastsend_'+article_id);<br /> //alert('点赞成功');<br /> $.ajax({<br />    url:'article.php',//后台处理路径<br />    type:'post',//post提交方式<br />    data:{id:article_id},//点赞的文章id<br />    success:function(data){//数据返回成功      <br />       if(data==1){//成功        <br />      }<br />   }<br /><br />});<br />}<br /></script>



//バックグラウンドでデータベースを更新し、IP が存在するかどうかを判断します
$realip=getip();<br />//echo $realip;<br />modifyipcount($realip);<br /><br />@$love=$_POST['id'];<br />if(isset($love)){<br />	$query="SELECT * FROM ecs_article_love where article_id='".$article_id."'";<br />	$result=mysql_query($query);<br />	$row=mysql_fetch_row($result);<br />	//dump($row);<br />	$ip1=$row[2];<br />	$ip2=$realip;<br />	//echo $ip;<br />	if(!empty($row) && strcmp($ip1,$ip2)==0){<br />		echo "<script>alert('ip已存在')</script>";<br />	}else{<br />		//$iptime=time();<br />		//$day=date('Y-m-d');<br />		//if($row[article_id]!=$article_id || $row[ip]!='')<br />		$query="INSERT INTO ecs_article_love (ip,article_id) VALUES ('".$ip2."','".$article_id."')";<br />		mysql_query($query);<br />		echo "<script>alert('点赞成功')</script>";<br />	}<br />}


//IP テーブルを決定します


-----ソリューションのアイデア-------- ---
2 つのフィールドのみを含むテーブルを設計するだけで十分だと思います。1 つは記事 ID、もう 1 つはユーザーの IP であり、2 つのフィールドは結合主キーとして使用されます。
ユーザーがアクセスしたり、クエリを実行したり、見つけたりするたびに、ユーザーはそれを気に入ります。見つからない場合は、「いいね」を押してください。結合主キーであるため、挿入できる項目は 1 つだけです。そのため、データベースは一度に制限するのに役立ちます。記事の「いいね!」の数を確認するには、カウントする記事 ID をクリックするだけです。

したがって、結合主キーの順序は次のとおりです: 記事 ID、ユーザー IP
-----解決策のアイデア-------------- --- -----
上記の html および js コードは、データを ajax に返すために使用するコードに問題があることを示しています (エントリ ポイントが間違っています)
php以下に表示されるエラー メッセージは、プログラムがフォールト トレランス処理を実行していないことを示しています

まずこれらを解決してから、それについて話し合います

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