Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2010, 11:21
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 1  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
По умолчанию Кнопка "Мне понравилось" или обычное голосование, как это устроено?

Возник не большой вопрос. Есть страница новостей, хочу сделать туда свою кнопку голосования по 5-ти бальной системе за новость. Как это реализовано? Как реализовано так, что если пользователь один раз проголосовал, то что записывается в базу, что бы он больше не мог проголосовать?

Добавлено через 2 минуты
Под вопросом подрузумеваю логику, ведение статистики в базе.

Старый 22.10.2010, 12:11
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от deman455 Посмотреть сообщение
Как реализовано так, что если пользователь один раз проголосовал, то что записывается в базу, что бы он больше не мог проголосовать?
До факта логина самого "пользователя" как такого не существует, есть только его компьютер (браузер и/или динамический IP, как правило). А раз так, то всегда можно почистить куки или воспользоваться прокси. Поэтому сделай регистрацию. Залогинился пользователь, проголосовал - у юзера делается отметка в базе, сама оценка например. Нет еще никакой оценки - значит кнопка голосования доступна, и что самое главное - скрипт-обработчик голосования сработает. Если проверка по базе показала, что оценка уже была, то и кнопка выводится неактивной, и скрипт не отработается.
Логично наверное, что анонимного голосования быть не может и не должно?
__________________
Идите первым!


Последний раз редактировалось mooncar; 22.10.2010 в 12:17.
Старый 22.10.2010, 13:04
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 3  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Регистрация вовсе не отменяет анонимность, можно нарегистрировать сколько угодно аккаунтов с помощью тех же методов, с помощью которых обходятся ограничения на повторное голосование без регистрации.

Решения тут просто нет. Единственное, что можно и нужно сделать - исключить лёгкие пути повторного голосования (повторный клик, F5), с целенаправленым обходом ограничений эффективно бороться невозможно и потому не имеет смысла. Ну и помнить, что результаты голосований не бывают полностью достоверными, поэтому их нельзя использовать для принятия важных решений.

Старый 22.10.2010, 15:20
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 4  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
Цитата:
Сообщение от mooncar Посмотреть сообщение
До факта логина самого "пользователя" как такого не существует, есть только его компьютер (браузер и/или динамический IP, как правило). А раз так, то всегда можно почистить куки или воспользоваться прокси. Поэтому сделай регистрацию. Залогинился пользователь, проголосовал - у юзера делается отметка в базе, сама оценка например. Нет еще никакой оценки - значит кнопка голосования доступна, и что самое главное - скрипт-обработчик голосования сработает. Если проверка по базе показала, что оценка уже была, то и кнопка выводится неактивной, и скрипт не отработается.
Логично наверное, что анонимного голосования быть не может и не должно?
Вопрос не в этом. Про логику может не в тему. Я имею ввиду вот что:
Голосовать может только зарегистрированный пользователя. Когда он проголосовал то что должно произойти в базе? В смысле его Name должен попасть в определенный столбец под названием "the_voted", и в этот столбец должны записываться через кому допустим, все имена пользователей которые проголосовали? Вот о чем речь. Это так как думаю я, должно быть. А есть ли метод, не записывать все никнеймы пользователей через кому, а другие какие то методы?
Анонимность не имеет значение. Можно вывести имена проголосовавших, можно не выводить, всеровно. Не в это вопрос, а в том что выше.

Старый 22.10.2010, 16:20
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 5  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Либо имена в список, либо наоборот, список пройденных голосований у каждого пользователя. Так как голосований обычно существенно меньше, чем пользователей, второе должно быть менее ресурсоёмко.

Старый 22.10.2010, 16:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А первичный ключ может быть одновременно и внешним ключем? Я, если чесно, не пробовал, но вполне возможно, что да. Ну только наверняка не имя с фамилией используется а мд5 хеш от пароль + ник.

VVall:
Куда? в таблицу пользователей добавлять? Как, она ж уже существует с другим количеством полей... не переписывать же ее всю ради одного временного голосования... Конечно отдельную таблицу на время голосования.
__________________
Hell is the possibility of sanity

Старый 22.10.2010, 18:48
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 7  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Ну только наверняка не имя с фамилией используется а мд5 хеш от пароль + ник.
Тут подводные камни есть, если на сайте можно менять пароль|логин, проще id использовать, таблица many to many, (id пользователя - id голосования)

А еще можно сериализовывать массив из id голосований и отметок конкретного юзера и складывать сериализованную строку куда нить, в таблицу к юзеру, например или в файловое хранилище
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг


Последний раз редактировалось leofit; 22.10.2010 в 18:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.