Самое простое решение - сохранить все данные в сеансе, что необходимо для определения уникальности комментария. Сессия php активна, пока пользователь остается на вашем сайте, другой посетитель будет иметь другой сеанс. Это означает, что для определения, нажал ли ваш посетитель кнопку дважды, вам нужно только 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;
При использовании этого метода вы уверены, что на сервере дважды не сохраняются данные. Однако вам все равно нужно отключить эту кнопку с помощью javascript, поскольку вы не можете отключить эту кнопку с помощью php до тех пор, пока идет ваш запрос.