2016-04-29 7 views
0

アップカウントとダウンカウントの列はすべてのページをリフレッシュするたびにインクリメントしています これは起こらないはずです。ここ 私はupvoteとdownvoteメカニズムページをリフレッシュするたびにアップカウントとダウンカウントが増加しますか?

// upvoteと

<?php 




if(isset($_POST['up'])) 

{ 
$string= $_POST['up']; 
$d= substr($string,0,2); 
$t = ltrim($d, '0'); 




$id1=$id; 
$conn1=new mysqli('localhost','root','','forum') or die(mysql_error()); 
$stmt1= $conn1->prepare("UPDATE messages SET upcount = (upcount+1) WHERE mid ='".$t."' "); 



$stmt1->execute(); 

     $stmt1->close(); 



} 

if(isset($_POST['down'])) 

{ 
$string1= $_POST['down']; 
$d1= substr($string1,0,2); 
$t1 = ltrim($d1, '0'); 
echo $t1; 
$conn1=new mysqli('localhost','root','','forum') or die(mysql_error()); 
    $queryd=mysqli_query($conn1,"SELECT upcount FROM messages where messages.mid='".$t1."'"); 
    $row=mysqli_fetch_assoc($queryd); 
    $up=$row['upcount']; 

    if($up>0) 



$id1=$id; 
$conn1=new mysqli('localhost','root','','forum') or die(mysql_error()); 
if($up>0) 
{ 
$stmt2= $conn1->prepare("UPDATE messages SET downcount = (downcount+1) WHERE mid ='".$t1."'"); 
} 


$stmt2->execute(); 

     $stmt2->close(); 

     $conn1->close(); 

} 
+0

ページリフレッシュをリクエストしているときにブラウザがサーバーに「フォームデータ」を再送信するよう要求していますか? –

+0

はいupcountは2回インクリメントしていますが、ページがリフレッシュされても1回だけ必要です。ページの更新後に正常に動作しています。 – Theon

+0

それは期待された動作です。 「再送信」は実際に別のPOSTを意味します。 http://stackoverflow.com/questions/4327236/stop-browsers-asking-to-resend-form-data-on-refresh –

答えて

0

ちょうど更新クエリの後、あなたは同じページにリダイレクトする必要がありdownvoteを実装している、これはからポストされたデータを空にしますhttpヘッダー

header('location:'$_SERVER['PHP_SELF']); 
関連する問題