Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подьем темы про голосование
 
 автор: serjinio   (07.08.2008 в 10:34)   письмо автору
 
 

Кстати ,несколькими постами ниже поднимали этот вопрос,у меня тоже возникла данная проблема ,связанная с блокировкой повторного голосования в частности когда пользователь выбирает вариант оценки статьи(" звездочки") как заблокировать повтора...
Что проверять в данном случае????

  Ответить  
 
 автор: Axxil   (07.08.2008 в 10:47)   письмо автору
 
   для: serjinio   (07.08.2008 в 10:34)
 

Дубль два :)

Каждый решает эту задачу по своему. Самый надёжный вариант - регистрация с отправкой на email голосующего ссылки-подтверждения. Но это работает только если голосующий очень сильно хочет волеизъявить.
А так, учитываются ipшники в основном. Можно куку ставить (но это совсем на лохов расчитано). Других средств идентификации вроде нет (если не верить в сказки про "определение mac и номера жёсткого диска" :))
Можно смотреть частоту голосования из подсети (если голосование глобальное и вероятность одновременного голосования граждан из соседних домов мала). Таким образом можно примерно отсечь динамические ipшники.
Можно отслеживать неанонимные прокси по добавляемым ими заголовкам.
С анонимными ничего не поделаешь.
В общем комбинацией приёмов можно сильно снизить шум от накруток. Но совсем их изключить нельзя.

  Ответить  
 
 автор: serjinio   (07.08.2008 в 12:20)   письмо автору
 
   для: Axxil   (07.08.2008 в 10:47)
 

Это конечно все глобально но мне надо попроще ..речь идет о рейтинге допустим только одной статьи и надо чтобы пользователь чтобы сколько бы не жал на капу...все-равно на счетчик ушла только 1
Это как проще проверить сессией, те в пределах сессии позволяется только раз проголосовать.... или достаточно рефера??? с куками не хочу заморачиваться...

  Ответить  
 
 автор: Axxil   (07.08.2008 в 12:39)   письмо автору
 
   для: serjinio   (07.08.2008 в 12:20)
 

проще всего после нажатия на кнопку в сессию записывать флаг $_SESSION['fl_voted'] = true;
И в дальнейшем проверять его наличие

if(!isset($_SESSION['fl_voted'])) $counter++;
else echo "You can't vote twice";

  Ответить  
 
 автор: DDK   (07.08.2008 в 11:18)   письмо автору
 
   для: serjinio   (07.08.2008 в 10:34)
 

Проще всего делать отметку в куках. Можно, конечно, заносить в БД запись о том, что данный пользователь уже проголосовал, но если пользователей больше 20000, это будет неоправданно лишней нагрузкой на БД.

  Ответить  
 
 автор: Axxil   (07.08.2008 в 11:24)   письмо автору
 
   для: DDK   (07.08.2008 в 11:18)
 

> заносить в БД запись о том, что данный пользователь уже проголосовал
Куда заносить это другой вопрос.
Главная проблема определить что это "данный пользователь"

  Ответить  
 
 автор: Valick   (18.08.2008 в 09:37)   письмо автору
 
   для: Axxil   (07.08.2008 в 11:24)
 

Главная проблема определить что это "данный пользователь"
Ну если вам знакомо слово авторизация, то проблем никаких нет ;))
А без авторизации, вы правы, совсем исключить нельзя.
Я думал над одним вариантом.. шифрованная кука + хитрый алгоритм основанный на теории погрешностей, но там ещё думать и думать.

  Ответить  
 
 автор: Axxil   (18.08.2008 в 09:54)   письмо автору
 
   для: Valick   (18.08.2008 в 09:37)
 

> шифрованная кука
Механизм, основанный на куке, ненадёжен изначально. Хоть шифрованная кука хоть нешифрованная без разницы:)

Если я аццкий накрутчик и пришёл специально накручивать счётчик, то я перым делом проверю влияние куки на возможность голосования. И если есть такое дело, то буду просто эту куку перед каждым голосованием сносить.

Процесс можно легко автоматизировать.

А если я обычный юзер, то хитро шифровать ничего смысла нет, так как обычный юзер в куку не полезет. А таких большинство, если конечно голосование не про Linux vs Windows :)

  Ответить  
 
 автор: Valick   (18.08.2008 в 10:14)   письмо автору
 
   для: Axxil   (18.08.2008 в 09:54)
 

А если голосовать можно будет только через сутки или неделю после установки куки? сносите сколько влезет.

  Ответить  
 
 автор: Axxil   (18.08.2008 в 11:28)   письмо автору
 
   для: Valick   (18.08.2008 в 10:14)
 

как вы узнаете что я проголосовал и меня надо ограничить если я снесу куку?

Или вы имеете ввиду, что я зашёл на сайт впервые, а мне говорят приходи через сутки, тогда и проголосуешь?

Очень узкая получается специализация. Голосования только для постоянных посетителей. Тогда проще через авторизацию сделать.

Да и то, если у кого-то настроено автоматическое удаление куков по включению компа/открытию браузера/и т.д. то такой гражданин выключается из процесса голосования вообще.

  Ответить  
 
 автор: Valick   (18.08.2008 в 12:35)   письмо автору
 
   для: Axxil   (18.08.2008 в 11:28)
 

Если хотите чтобы учитывался ваш голос, то либо авторизуетесь, либо потерпите недельку. Причём количество авторизованных и неавторизованных голосов я бы не стал мешать в одну кучу.

  Ответить  
 
 автор: Axxil   (18.08.2008 в 13:37)   письмо автору
 
   для: Valick   (18.08.2008 в 12:35)
 

> Если хотите чтобы учитывался ваш голос, то либо авторизуетесь, либо потерпите недельку.
Отсюда все проблемы.
В первую очередь это надо владельцу ресурса. Именно он собирает статистику по голосованию. И именно он заинтересован как в количестве так и в качестве проголосовавших. А пользователям, в большинстве своём, пофиг. Он ткнётся разок, увидит надпись про неделю ожидания, и пошлёт вас, как автора голосования, куда подальше. Хотя само голосование может быть его и заинтересовало.

И именно про это отношение количество/качество и идёт речь.

Любые методы типа авторизации уменьшают количество, но повышают качество и наоборот, любое ослабление контроля повышает количество проголосовавших, но уменьшает качество учёта голосов.

И в каждом конкретном случае выбирается своя стратегия.
Глупо в обычном "звёздочном" голосовании за статью слать шифрованные подтверждающие ссылки на мыло.
Вместе с тем данный ход уж точно бы не помешал на таком глобальном проекте как "Имя России", где вообще никакой защиты нет.

  Ответить  
 
 автор: Valick   (18.08.2008 в 15:23)   письмо автору
 
   для: Axxil   (18.08.2008 в 13:37)
 

Вот мы с вами говорим об одном и томже, но всё же умудряемся спорить. До сих пор у меня такое получалось только с sim5 ))

  Ответить  
 
 автор: Seregin   (18.08.2008 в 15:37)   письмо автору
 
   для: Axxil   (18.08.2008 в 13:37)
 

насчет имени России это точно, хотя в принципе, система справедливая получается: знаешь ответ на вопрос - получи голос, знаешь ответ на два вопроса, поучи два голоса))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования