Tempter

Рейтинг
145
Регистрация
24.07.2008

Скрипт называется "просмотр логов".

Помню когда-то давно делал рейтинг игровых серверов,

тогда была придумана такая система:

Приходит посетитель на сайт и видет рейтинг с возможностью оставить свой голос

кликает проголосовать (ему ставится уникальная кука)

ему выводится сообщение, что его голос НЕ УЧТЕН, и он будет учтен только ЗАВТРА при повторном голосовании (делается для защиты от накручивания)

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

Таким образом учитывался только 1 голос с 1 браузера в сутки.

В целом эффективно для постоянных пользователей сайта. Если же посетители не имеют привычки возвращаться на сайт, система не подойдет.

Также есть возможность обхода системы, в случае использования плагина к кукам для браузера, которым можно сохранить 10-100-1000 уникальных кук, которые мы выдадим, и на следующий день с этими куками проголосовать и все голоса зачтуцца ))

Короче говоря, идеального решения нет.

chemax:
хм. но это же будет не точным. то есть сносим куки и заново регимся.

я думаю, если человек не хочет, чтобы его регистрация защиталась партнеру, то он удалит из ссылки ?pid=12345, и тогда никакие средства не помогут его спалить )) Так что о куках можно не заморачиваться. Если человек захочет, он обойдет любую защиту.

Я думаю как и везде в ссылку добавляется параметр htttp://site.ru/?pid=12345

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

fros:

А что вот это за запрос / HTTP/1.1?

это запрос корня сайта.

Tempter добавил 15.01.2010 в 11:03

т.е. главной страницы )))

Могу посоветовать ресурс: http://htmlbook.ru если сами еще не нашли.

SELECT * FROM country as country

LEFT JOIN base_ as base_ ON base_.country = country.id
WHERE base_.show = 1
ORDER BY base_.rating DESC, country.title
LIMIT 20

Tempter добавил 25.12.2009 в 17:03

Хотя. наверно не сработает

и отсортировать придется в коде PHP

mff:
Ага, выяснил, страны оказалось хранятся в другой табличке :( А в этой только номера (id) стран. Как же быть?

Я не уверен в какой таблице находится поле "show", если в таблице с рейтингами то так:

SELECT id_country FROM table_country as tc

LEFT JOIN table_rating_country as trc ON trc.id_country = tc.id_country
WHERE tc.show = 1
ORDER BY trc.rating DESC
LIMIT 20

если в таблице с странами то вместа trc.show надо написать tc.show

Какой-то бред

почему нельзя так:


SELECT * FROM base
WHERE show = 1
ORDER BY rating DESC, country
LIMIT 20
Всего: 325