У меня есть простая кнопка голосования, но, поскольку кто-то может нажать несколько раз после перезагрузки сайта, я хочу запретить использование последнего сохраненного IP-адреса. Что-то случилось, и это не остановило многократное голосование с одного и того же IP.
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "update table set votos=votos-1, lastvote='$ip' where id='$id'";
$voto = "SELECT lastvote FROM table where id='$id'";
$resultado = mysqli_query($conexion, $voto);
if ($ip == $resultado) {} else{
mysqli_query($conexion, $sql);
}
Идея состояла в том, чтобы сравнить последний IP-адрес голосования перед сохранением нового голосования, но я не могу понять, что было не так.
Спасибо
Что если кто-то поменяет свой ip? что если другой пользователь проголосует через 1 секунду? На самом деле концепция, которую вы используете, неверна. Вы не можете предотвратить несколько голосов, отслеживая IP-адрес. Динамический IP-адрес изменяется после того, как пользователь отключил свое интернет-соединение. И пользователь может легко изменить IP с помощью приложений. Таким образом, решение заключается в регистрации пользователя, и после регистрации один пользователь может отдать один голос. Надеюсь, это поможет.
Других решений пока нет …