прикрутить проверку по ip к кнопке

Гм... так во первых зачем использовать конструкцию md5(uniqid(rand(), true)); для определения $_SESSION["uid"]? Так действительно постоянно новое число будет... Используй для этого session_id().... $_SESSION["uid"]=session_id();
Во вторых есть одно правило для куки... Перед объявлением куки на странице не должно генериться ничего! форма выведенная перед объявлением куки, любой символ выведеный на экран операторами echo, print_r() и т.д вызовет ошибку.. Поэтому сливаем кусок кода
PHP:
if (!isset($_COOKIE['cookie'])) 
{ 
echo "<center> <form method=\"post\" action=\"\"> <input type=\"hidden\" name=\"uid_post\" value=".$_SESSION['uid']."> <input type=\"submit\" name=\"flover\" value=\"Положить цветы\"> </form></center>"; 
}
в самый конец файла после конструкции if($_POST['flover']){...}
 
  • Нравится
Реакции: zavu
Вот это вы тут наворотили :D
Никогда не думал, что из такого простого задания можно сделать огромную проблему. Совсем недавно писал себе голосовалку. Работает на аяксе, запрос передается обработчику, то проверяет голосовал ли человек с этим айпи, если да, то смотрит время, если прошло более 24 часов, то голос принимается, время голосования перезаписывается, голос плюсуется. Не надо никакие куки использовать, они не для этого придуманы и рассчитаны на лопухов. От накрутки спасет проверка по айпи и задержка при выполнении скрипта например на 4-5 секунд, такой много не накрутишь, да и сервак особо не будет нагружен частыми запросами.
Единственная проблема на данный момент, это интернет эксплорер. Не могу там открыть хттпреквест, видимо как-то неправильно делаю. А так даже с мобилы можно голосовать.
ТС, если интересно, чиркани в аську, я тебе помогу без проблем и все расскажу. Там ничего сложного нет и выдумывать велосипед не надо :)
 
Да, не забываем что заголовки типа HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR
можно с легкостью подделать в любом дебагере, ну и там уже и до иньекции не далеко....
Так что будьте внимательны...
 
Назад
Сверху