2015-10-24 4 views
0

У меня есть простая кнопка голосования, но поскольку кто-то может нажать несколько раз после перезагрузки сайта, я хочу предотвратить использование последнего сохраненного IP-адреса. Произошло что-то, и это не остановило множественное голосование от одного и того же 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 голосования перед сохранением нового голосования, но я не могу понять, что случилось. Спасибо

+0

вы не проверяете, прошел ли IP-адрес перед обновлением таблицы –

+0

, обновление находится в конце кода. –

ответ

1

Что делать, если кто-то меняет свой ip? что, если другой пользователь проголосует через 1 секунду? Фактически используемая вами концепция неисправна. Вы не можете предотвратить несколько голосов путем отслеживания IP-адреса. Динамический IP-адрес изменяется после того, как пользователь отключит свое интернет-соединение. И пользователь может легко изменить ip, используя приложения. Таким образом, решение регистрирует пользователя, и после регистрации один пользователь может сделать один голос. Надеюсь, это поможет.

+0

Вы правы, это не работает против динамического ip, но будет достаточно для небольшого сайта, пока я буду следовать вашей идее. К сожалению, код не работает. –

+1

@RicardoMehr вы можете использовать cookie для отслеживания голосования. Он также может отслеживать пользователя. Но если пользователь очистит cookie, вы никогда не сможете отслеживать. –

+0

закончил с использованием файлов cookie, спасибо –