У меня есть система голосования, которую пользователи могут использовать для голосования по сообщениям. Дело в том, что они не могут голосовать дважды на одном и том же посте. И это хорошо. Я сделал это так:
$query = "INSERT IGNORE INTO vote_id (vote, postid, userid)
VALUES ('1', '{$postid}', '{$userid}')";
$result = mysqli_query($db, $query);
header('Location: index.php');
(The $ дб моя переменная, которая подключается к базе данных).
Они по-прежнему могут нажать на голосование, даже если оно не вставлено в таблицу.
Моя проблема:
Когда он является «ИГНОРИРУЙТЕ«они не должны быть в состоянии щелкнуть.
Мой вопрос:
Как мне отделить ВСТАВИТЬ а также ИГНОРИРУЙТЕ, так что я могу использовать ИГНОРИРУЙТЕ в ЕСЛИ заявление? Или любым другим способом, который может изменить макет страницы.
Заранее спасибо! Действительно борется с этим.
Без кода, показывающего «голосование», трудно сказать, но если это кнопка, то вы можете просто запросить SELECT
для user_id
а также post_id
, и если он найдет хотя бы одну строку, то добавьте disabled
на кнопку. Как это:
<button name="vote" value="1" disabled>Vote</button>
Или просто не отображать что-либо «голосовать» вообще, когда запрос возвращает строки.
Другой способ — проверить сессию, но это позволит тому же пользователю снова голосовать после повторного входа.
Других решений пока нет …