![]() |
Проверка голосования по ip.
Доброго время суток !
Нужно решить мне такую задачу: Есть новость, люди голосуют, нужно, чтоб не голосовали кто уже голосовал. Немного погуглил ничего не нашёл. Хочу, чтоб ip заносились в базу mysql потом оттуда вытаскивались и проверялись. Сейчас застрял на этапе проверки и корректной записи. Плюс не уверен с типом поля для сохранения ip в базе. Вот что пока есть: $ip=$row['ip']; // просто из текстового поля заношу всё в переменную вот тут не знаю, что сделать. if($ip==$_SERVER['REMOTE_ADDR']) { echo "Вы уже голосовали !" exit(); } Вот такие скромные успехи ) |
Хм… Очень странно что вы не чего не нашли в сети. Вот примеры:
http://www.codenet.ru/webmast/php/PHP-Voting.php http://webdesign.site3k.net/?/conjun...d/d/golos.html Так же имеются большое количество готовых решений http://script.emanual.ru/?a=23&i=193 |
Цитата:
|
Требуется совет по оптимизации и выявлению глупых мест )))
Вот что сделал: $id // ид-новости из другой таблицы. Прилетела из голосовалки. $ip=($_SERVER['REMOTE_ADDR']); // получил ip $vote_check=mysql_query("SELECT id FROM ipvot WHERE ipadr='$ip' and idnews='$id'",$db); //В таблице три поля: id автозап., ipadr это просто text, idnews совпадает с номером новости в другой таблице. Итак, засунули в $vote_check поле id где ipadr=ip и idnews=id новости. $check = mysql_fetch_array($vote_check); //Всё это разложили. $idcheck = $check['id']; // В $idcheck засунули то что в id. if (($idcheck) >0) //проверил, что $idcheck есть и имеет значение. { echo "Вы уже голосовали !"; exit(); } else {тут всё делаем и записываем в таблицу ipvot, idnews(номер новости) и ip} |
Зачем нужно первое поле, проголосовал человек и ладно.
Как вариант можно просто проверить количество возвращаемых строк. PHP код:
|
Цитата:
|
Пробел затесался.
SELECT COUNT<без пробела>(*) FROM ipvot WHERE ipadr='$ip' and idnews='$id' |
Цитата:
|
Время: 03:37. |
Время: 03:37.
© OSzone.net 2001-