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

HTML+CSS+JavaScript

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

 

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

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

тема: Рейтинг статьи (комментария). Суть идеи.
 
 автор: Deed   (18.07.2012 в 22:06)   письмо автору
 
 

Здравствуйте!
Вопрос мой очень неконкретный.
Я пытаюсь понять технологию защиты от повторного голосования. Речь идет о одноразовом выставлении оценки какому-либо комменту или статье зарегистрированным пользователем. Мне интересен механизм блокировки повторного голосования.
Просмотрев исходники многих сайтов, где эта идея реализована, я пытался разобраться в сути функций JS, обеспечивающих эту "одноразовость". Но... но понял лишь, что присутствует и серверная часть. Это само собой.
Казалось бы, все просто - проголосовал, получил куку...
Но, ведь, на многих сайтах мы оцениваем сотни комментов и новостей, вроде как на http://dirty.ru и т.д. И уже оцененные комменты не позволяют выставить себе оценку повторно.
И Это реализовано без кук (представляете полторы тысячи кук??) и, наверное, без записи в таблицу с новостью списка проголосовавших (там, например, 39000 зарегистрированных пользователей!).
Буду рад узнать суть механизма реализации подобных голосований.
Спасибо.

  Ответить  
 
 автор: ЯСА   (18.07.2012 в 22:34)   письмо автору
 
   для: Deed   (18.07.2012 в 22:06)
 

Кукисы используются чаще всего при "открытых" голосованиях, когда голосовать могут любые (в т.ч. незарегистрированные) пользователи.

Во всех иных случаях у всякой статьи (коммента, голосования) существует файл-спутник, в котором прописан дополняемый список проголосовавших.
При запросе страницы статьи (коммента) зарегистрированным пользователем его никнейм сверяется со списком и на сервере формируется вывод содержания - с возможностью проголосовать, либо без таковой (для уже проголосовавших).

JS-коды на страницах, где есть голосование, в основном предназначены для того, чтобы при голосовании без перезагрузки страницы обеспечить:
--дописывание списка проголосовавших в файл-спутник страницы
--видимо изменить рейтинг на странице
--убрать возможность голосования

  Ответить  
 
 автор: Deed   (18.07.2012 в 23:25)   письмо автору
 
   для: ЯСА   (18.07.2012 в 22:34)
 

Здравствуйте, ЯСА!
Это я понимаю. Вот только не верится, что в таблице с новостью хранится список всех, за нее проголосовавших! А если их тысяча?? Это ж какой размер базы будет??!

  Ответить  
 
 автор: ЯСА   (19.07.2012 в 00:26)   письмо автору
 
   для: Deed   (18.07.2012 в 23:25)
 

Тысяча логинов * на 20 символов в среднем * на 4 байта на символ = 80 000 байт ~ 78 кБ.
Это копейки.
Последняя версия JQuery - 96 кБ весит :-)

  Ответить  
 
 автор: Deed   (19.07.2012 в 13:33)   письмо автору
 
   для: ЯСА   (19.07.2012 в 00:26)
 

Спасибо большое!
А как Вы считаете, что будет лучше - создать отдельную таблицу со списком голосовавших или держать этот список в таблицах с самим оцененным контентом?

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

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