Вы можете использовать переменную реферера PHP $_SERVER['HTTP_REFERER']
, чтобы проверить, что ссылающийся URL принадлежит вам. Но вы не можете полагаться на эти 100%, потому что эта информация не может быть отправлена, и, поскольку она является частью заголовка HTTP, пользователь может изменить ее, если пожелает.
Сессии, как предлагается, могут быть хорошим способом сделать это. Я бы выбрал сеансы вместо файлов cookie, потому что пользователи могут отключить свои файлы cookie на вашем сайте - и файлы cookie редактируются пользователями. Сессии могут редактировать только те, у кого есть доступ к вашему серверу (обычно это общий хостинг).
Также я не согласен с тем, как вы это делаете. В настоящее время вы полагаетесь на то, что у пользователя включен JavaScript в их браузерах. Некоторые пользователи не имеют его, некоторые браузеры не поддерживают его. Некоторые пользователи даже отключают перенаправления страниц таким образом.
Лично вместо двух сценариев я бы использовал один сценарий, например:
<form action="rank.php" method="post">
<input type="submit" value="Vote up!" />
<input type="submit" value="Vote down!" />
</form>
В rank.php вы определяете, какая из двух кнопок была нажата, и соответственно запускаете функцию. Вы можете использовать переменную сеанса для хранения идентификатора элемента, по которому они будут голосовать, а затем считывать этот идентификатор из сеанса (хотя обязательно избегайте его), чтобы гарантировать, что идентификатор не может быть изменен пользователем в последний раз минут.
Надеюсь, это даст вам некоторые идеи.