В Интернете есть множество учебных пособий о том, как этого добиться, поэтому я не дам вам код.Несколько советов для начала работы.
В PHP вы можете получить IP-адрес пользователя из $_SERVER
superglobal
$ip = $_SERVER['REMOTE_ADDR'];
Чтобы проверить, существует ли он в вашей таблице
$query = sprintf("SELECT COUNT(*) FROM yourtable WHERE `ip` = '%s'", mysql_real_escape_string($ip));
Если его не существует, сохраните его с помощью команды INSERT
вместе с отметкой времени.
Что касается удаления через 24 часа, вы можете настроить задание cron, которое выполняется черезтаблица каждый час или около того и удаляет все записи, которые истекли.Однако было бы проще не удалять записи.Вместо этого, когда пользователь голосует, просто проверьте отметку времени его последнего голосования.Если с момента последнего голосования прошло 24 часа, просто обновите отметку времени.
По сути, рабочий процесс будет выглядеть следующим образом:
1. Get users's IP address.
2. Does this IP exist in table?
2a. If no, let user vote, and enter his ip in the table along with the current time in the timestamp column
2b. If yes, get the timestamp of his last vote. Has it been 24 hours since his last vote?
2b.a. If yes, let user vote and update timestamp column with current time.
2b.b. If no, do not let user vote / reject his vote. Leave timestamp column unchanged.