我想阻止用戶意外發表評論兩次。 我使用PRG(post重定向get)方法,以便將數據插入另一個頁面,然後將用戶重定向到顯示註釋的頁面。這允許用戶根據需要刷新多次。但是,當用戶返回並單擊再次提交或單擊提交100次時,這不起作用。我不想要100條相同的評論。有哪些方法可以防止表單中的重複發佈? (PHP)
我看了SO上的相關問題,發現一個令牌是最好的。但是我在使用它時遇到了麻煩。
//makerandomtoken(20) returns a random 20 length char.
<form method="post" ... >
<input type="text" id="comments" name="comments" class="commentbox" /><br/>
<input type="hidden" name="_token" value="<?php echo $token=makerandomtoken(20); ?>" />
<input type="submit" value="submit" name="submit" />
</form>
if (isset($_POST['submit']) && !empty($comments))
{
$comments= mysqli_real_escape_string($dbc,trim($_POST['comments']));
//how do I make the if-statment to check if the token has been already set once?
if (____________){
//don't insert comment because already clicked submit
}
else{
//insert the comment into the database
}
}
所以我有令牌作爲隱藏值,但如何使用它來防止多次點擊提交。
方法: 有人建議使用會話。我會將隨機標記設置爲$ _SESSION ['_ token']並檢查該會話標記是否等於$ _POST ['_ token'],但我該怎麼做?當我嘗試時,它仍然不檢查
您可能要修改標題,但對問題的其餘部分不是100%準確。 – jcolebrand 2010-05-25 03:03:25