最も簡単な解決策は、すべてのデータをセッションに保存することです。このセッションでは、コメントが一意であると判断する必要があります。ユーザーがあなたのウェブサイトにいて、別の訪問者が別のセッションを持つ限り、PHPセッションはアクティブです。つまり、訪問者がボタンを2回クリックしたかどうかを判断するには、a)メッセージとb)投稿(私が想定している)のコメントだけが必要です。
例:あなたが確信している。この方法では
session_start();
// This is something you already have, sort-of
$message = $_POST['message']; // Message from user
$post = $_GET['id'] // Id of post to which he commented
if (isset($_SESSION['message']
&& isset($_SESSION['id']
&& $message === $_SESSION['message']
&& $post === $_SESSION['id'])
{
// We found out the user has already posted this
echo 'Error: you clicked twice!';
exit;
}
// Process message here as you already do
// Store now this just posted message in a session
$_SESSION['message'] = $message;
$_SESSION['id'] = $post;
はデータが二回サーバーに固執していないがあります。しかし、依然としてリクエストが行われている限り、phpでそのボタンを無効にすることはできないので、javascriptでそのボタンを無効にする必要があります。
すでにこれに関するスレッドがあります:http://stackoverflow.com/questions/4614052/how-to-prevent-multiple-form-submission-on-multiple-clicks-in-php – Raf
既に見ましたトピック、残念ながら返信のどれも役立たなかった。 –