Предотвратить спам вставки запроса

У меня есть система комментариев, где пользователи могут публиковать то, что они думают об определенных вещах, однако, если вы нажмете кнопку «Опубликовать!» Несколько раз, в базу данных будет вставлено несколько запросов, и результатом будет спам.

Это мой код:

if(!empty($_POST["artcomment"])) {
$postComment = $DB->real_escape_string($_POST["artcomment"]);
$poster = $dbuser;
$postDate = date("Y-m-d H:i:s");
$attachId = $id;

$prepareComment = $DB->prepare("INSERT INTO article_comments (attach_id, comment, poster, date) VALUES ('".$attachId."', '".$postComment."', '".$poster."', '".$postDate."')");
$addComment = $prepareComment->execute();
}

Теперь я задаюсь вопросом, можно ли установить ограничение времени в 60 секунд, как если бы они запускали запрос один раз (индивидуально!), Вам нужно подождать 60 секунд, прежде чем он сможет выполнить запрос снова. Я посмотрел на set_time_limit() но я не совсем уверен, как это работает.

0

Решение

Вы можете сохранить временную метку последнего запроса в сеансе, а затем сравнить ее при получении нового запроса.

session_start();
$limit = 60;
$reqEpoch = time();
$ts = (isset($_SESSION['ts'])) ? $_SESSION['ts'] : $reqEpoch;

if ($ts < $reqEpoch - $limit) {
// run query

$_SESSION['ts'] = time();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]