Как обеспечить, чтобы пользователь мог голосовать только один раз в 24 часа

Я создаю функцию, которая позволяет пользователю голосовать только один раз в каждые 24 часа.

Вот моя структура базы данных

id ip timestamp userid 9 127.0.0.1 2013-06-27 16:52:49 35 

Я использовал эту функцию, чтобы получить адрес клиента для пользователя, я в среде localhost, и он продолжает давать мне localhost ip 127.0.0.1 вместо моего общедоступного ip. Что-то не так с этим?

 function get_client_ip() { $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP'); else if(getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); else if(getenv('HTTP_X_FORWARDED')) $ipaddress = getenv('HTTP_X_FORWARDED'); else if(getenv('HTTP_FORWARDED_FOR')) $ipaddress = getenv('HTTP_FORWARDED_FOR'); else if(getenv('HTTP_FORWARDED')) $ipaddress = getenv('HTTP_FORWARDED'); else if(getenv('REMOTE_ADDR')) $ipaddress = getenv('REMOTE_ADDR'); else $ipaddress = 'UNKNOWN'; return $ipaddress; } 

Что-то не так, моя логика для этой функции, моя идея

1) первый запрос, чтобы увидеть, сохраняется ли ip для пользователя. Если да, то он проголосовал 2) отметьте отметку времени голосования против текущей отметки времени, если его время голосования идет до 24 часов, а затем разрешить ему голосовать снова.

Меня беспокоит не метка времени, а ipapdress. Я не знаю, правильно ли построена функция, чтобы получить его ipaddress, даже если он находится за прокси.

Советы были оценены. благодаря

ура

Solutions Collecting From Web of "Как обеспечить, чтобы пользователь мог голосовать только один раз в 24 часа"