Проблема с файлами cookie (PHP)

У меня странная проблема. Ну, на моем веб-сайте у меня есть система отзывов и комментариев, оба используют файлы cookie, чтобы люди не отправляли много комментариев (массовый спам), блокируя запись комментария или обратную связь, например, 30 секунд. Если они отключили куки, они не могут комментировать или получать отзывы. Я использую систему с помощью сценария JQuery, используя процесс на PHP, чтобы не обновлять страницу.

Первая проблема. По какой-то причине, на локальном хосте (размещенном в моем доме) он работает нормально, блокируя людей. Но на хосте, если я загружаю скрипты (если я хочу сделать обновление, например), он перестает работать, я могу комментировать столько, сколько хочу, он не будет блокироваться. Но это только на моем компьютере (как я протестировал, на ноутбуке моего брата и на моей работе отлично работает), я также тестировал на IE, Firefox и Chrome. Но через несколько дней (случайный, 1-4) он начинает работать нормально. Но если я обновляю скрипт (даже не меняя сценарий THAT), он возвращает эту проблему.

Вторая проблема. При голосовании (обратной связи) и системе комментариев, если «блочная система» работает нормально, она заблокирует пользователя в течение 30 секунд. Но, когда я отправляю комментарий, нажимая очень быстро в первую секунду, он будет отправляться дважды. Например, сделайте 2/3 (иногда 4) раза тот же комментарий. Но если я попытаюсь прокомментировать еще до 30 секунд, он будет заблокирован. Как я могу запретить людям делать дубликаты?

Вот некоторые коды для вас, это должно помочь.

comments.php

if (isset($_COOKIE["AbleCookie"])) //prevent disabled cookies { if (!isset($_COOKIE["time"])) //verify if the cookie time (to block comment) has been set { if (strlen($Comentario) != 0) { if (strlen($Comentario <= 500)) { ob_start(); //need this? setcookie("time", "anyvalue", time()+$Segundos); ob_end_flush(); if (isset($Usuario)) { $acharUsuario = "select query"; $resultado = mysql_query($acharUsuario, $conexao) or die (mysql_error()); $ExisteUsuario = mysql_num_rows($resultado); if ($ExisteUsuario != 0) { $UsuarioID = mysql_result($resultado, 0, 'id_usuario'); $InserirComentario = "insert query"; mysql_query($InserirComentario, $conexao) or die (mysql_error()); $Mensagem = "Correct"; } } else { $InserirComentario = "insert query"; mysql_query($InserirComentario, $conexao) or die (mysql_error()); $Mensagem = "Correct"; } } else $Mensagem = "<h3>Your comment must has less than 500 characters.</h3>"; } else $Mensagem = "<h3>To comment something, you have to write something, right?</h3>"; } else $Mensagem = "<h3>You just can do another comment after $Segundos seconds!</h3>"; } else $Mensagem = "Something went wrong! Please, take a look on our <a href='../faq'><b>FAQ</b></a>!"; echo $Mensagem; $Mensagem = ""; 

не-refresh.js

 function InserirComentario(){ var uname = $('#PostComentario').val(); var postid = $('#CommentPostID').val(); var dataString = 'post_comentario='+ uname + '&comment_postid='+ postid; $.ajax({ type: "POST", url: "sucess/comments.php", data: dataString, cache: false, success: function(result){ if (result=='Correct') { document.getElementById("PostComentario").value = ""; } else { $("#ComentariosFullPost").html(result);} }, error: function(xhr, ajaxOptions, thrownError){ alert("Error Status: " + xhr.status + " Thrown Errors: "+thrownError); } });} 

Заранее спасибо.