2013-02-24 60 views
0

我正在創建一個小型評論系統,它顯示所有評論。問題是每次按下提交按鈕時,數據庫中添加的第一行都會被複制。這導致顯示大量相同的評論。我已經嘗試使用標題和退出,但這也沒有解決。它可能是與表單動作有關嗎?提前致謝。每次刷新網頁時,第一行添加的都是重複的

public function comment($username, $comment) 
{ 
    if (!empty($username) && !empty($comment)) { 
     $date = date("Y-m-d H:i:s"); 
     if ($insert = $this->db->prepare("INSERT INTO reviews (username, comment, time) VALUES (?, ?, ?)")) { 
      $insert->bind_param('sss', $username, $comment, $date); 
      $insert->execute(); 
     } else { 
      echo "something is wrong with the query"; 
     } 
    } else { 
     echo "missing fields"; 
    } 
} 

這裏是使用,形式回顯低於這個,你可以看到,我重定向到避免重複,然後退出

$reizen = new reizen; 
if (isset($_POST['submit'])) { 
    $username = $_POST['username']; 
    $comment = $_POST['comment']; 
    header("Location: index.php?" . $_SERVER['QUERY_STRING']); 
    $reizen->comment($username, $comment); 
    exit(); 
} 
echo $reizen->retrieve(); 
+0

你需要換行 '頭:;' 而 '$ reizen->評論($的用戶名,$評論);' – Winston 2013-02-24 18:16:17

+0

($ _ SERVER [ 'QUERY_STRING'] 「位置的index.php?」。)謝謝,但它仍然重複,更多的想法? – user2031928 2013-02-24 18:26:05

+0

如果它總是發生,你的評論函數會被調用兩次,或者你的db有一個重複行的時髦觸發器:) – 2013-02-25 20:41:05

回答

0

您需要使用POST/REDIRECT/GET pattern爲了防止這種情況。

+0

看來OP已經在使用PRG。 – 2013-02-25 20:37:34

相關問題