X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Скрипт голосования ЗА и ПРОТИВ
winston3d
winston3d
Topic Starter сообщение 7.2.2013, 18:03; Ответить: winston3d
Сообщение #1


Привет всем!
Подскажите пожалуйста скрипт голосования ЗА и ПРОТИВ. Нужно только это, полноценные опросы не нужны. Весь инет обшарил и ничего не нашёл.
Скрипт должен работать на PHP с MySQL.
В принципе могу и сам написать, только подскажите как сделать защиту по IP - целесообразно ли хранить в одной ячейке все IP голосовавших, а потом искать там полное совпадение с IP зашедшего на страницу?
Планируется использовать так - человек заходит на страницу и видит голосование - понравилась/не понравилась. Т.е в БД должны быть следующие столбцы: ID (страницы) UP (за) DOWN (против) IP (ip всех голосовавших)
А ещё по всей видимости придётся не просто IP вносить в БД, а IP_UP И IP_DOWN что бы можно было голосовать против если проголосовал за и на оборот...

Как-то так полагаю делать
определяем ID страницы
определяем IP клиента
ищем IP клиента в IP_UP и IP_DOWN
если IP клиента есть в IP_UP, то разрешаем голосовать только ПРОТИВ
если IP клиента есть в IP_DOWN, то разрешаем голосовать только ЗА
если IP клиента нет в IP_UP и IP_DOWN то разрешаем голосовать и ЗА и ПРОТИВ
при голосовании ЗА заносим +1 в поле UP и IP клиента в IP_UP
при голосовании ПРОТИВ заносим +1 в поле DOWN и IP клиента в IP_DOWN
если клиент уже голосовал, то выполняем выше описанное, но при этом удаляем его IP из IP_ПРОТИВОПОЛОЖНОГО и делаем -1 в проивоположном
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 7.2.2013, 18:21; Ответить: matroskin8
Сообщение #2


Привет.
Хранить все IP в одной ячейке, конечно же, не целесообразно. Под IP лучше выделить отдельную таблицу. Тогда структура БД будет следующей: например, оцениваются статьи. В таблице статей добавляется поле под общий результат голосования (дефолтное значение поля - 0), либо 2 поля (UP и DOWN). В таблице IP будет 3 поля - ID, IP, ID_статьи.
Соответственно при выводе статей можно и кнопку голосования сделать неактивной, если текущий IP голосовал за статью. Ну а на сервере перед добавлением голоса проверяется есть ли запись в таблице IP, для которой выполняется условие: IP_юзера = IP_в_таблице_IP И ID_голосуемой_статьи = ID_в_таблице_IP. Если таковая запись есть, значит голос не принимается.

если IP клиента есть в IP_UP, то разрешаем голосовать только ПРОТИВ если IP клиента есть в IP_DOWN, то разрешаем голосовать только ЗА

ИМХО, не логично. Юзер должен голосовать только раз - либо понравилось, либо не понравилось.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
winston3d
winston3d
Topic Starter сообщение 7.2.2013, 18:40; Ответить: winston3d
Сообщение #3


Ага, спасибо за подсказку... Придумал как ещё лучше сделать:
Создаём таблицу со следующими полями - IP | ID | VOTE
при голосовании создаём запись занося IP в соответствующее поле, то же самое с ID и 1 если голосовали за и 0 если голосовали против.
Что бы подсчитать голоса за определённую страницу - делаем выборку значений где ID соответствует id страницы и значение поля VOTE равно 1 и аналогично для подсчёта голосов против.
Ну а дальше всё понятно...

Привет.
Хранить все IP в одной ячейке, конечно же, не целесообразно. Под IP лучше выделить отдельную таблицу. Тогда структура БД будет следующей: например, оцениваются статьи. В таблице статей добавляется поле под общий результат голосования (дефолтное значение поля - 0), либо 2 поля (UP и DOWN). В таблице IP будет 3 поля - ID, IP, ID_статьи.
Соответственно при выводе статей можно и кнопку голосования сделать неактивной, если текущий IP голосовал за статью. Ну а на сервере перед добавлением голоса проверяется есть ли запись в таблице IP, для которой выполняется условие: IP_юзера = IP_в_таблице_IP И ID_голосуемой_статьи = ID_в_таблице_IP. Если таковая запись есть, значит голос не принимается.


ИМХО, не логично. Юзер должен голосовать только раз - либо понравилось, либо не понравилось.
Ну в контакте же можно поставь лайк и убрать его... Всё норм

Но тогда в таблице будет много записей - это плохо?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alex159
alex159
сообщение 27.2.2013, 21:45; Ответить: alex159
Сообщение #4


[member=winston3d], Лучше уже самому написать, если знаете как это делать. Ну для начала поставьте зашиту от чайников это кукиксы. А также по IP.
Лучше если было бы голосование с авторизацией через социальные сети(но это не удобно), тогда ограничение на голосование с одного аккаунта 999 дней( если хотите что бы вобще не голосовали больше одного раза)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
wolverine_hb
wolverine_hb
сообщение 6.3.2013, 17:27; Ответить: wolverine_hb
Сообщение #5


Сделайте 2 таблицы, первая pages
Структура:
id | name | url

Вторая таблица ips
Структура:
pid | ip | value

Открывается страница с голосованием и сразу же проверяется ip пользователя, если записи в таблице ips нет, то предлагается 2 варианта, после выбора выполняется запрос, который добавляет запись в таблицу ips со значениями: ИД_СТРАНИЦЫ, ИП, UP/DOWN.

Если же совпадение в таблице ips найдено, то из него берется значение (из поля value) и предлагается поменять значение и запись обновляется.

Так же могу рекомендовать вам ипользовать текстовый файл для хранения таблицы ips.
И так же стоит обратить внимание при определении ip адреса пользователя, при использовании прокси механизм весьма усложняется.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Скрипт поисковика видео StrongTube
3 3josoft 1574 14.8.2023, 14:45
автор: 3josoft
Открытая тема (нет новых ответов) Скрипт приема платежей p2p с карты на карту card2card
Скрипт приема платежей p2p с карты на карту card2card
15 zladey1986 7834 26.3.2023, 8:54
автор: Palundra
Открытая тема (нет новых ответов) Продам скрипт перевода постов и комментариев
4 Tutich 787 19.1.2023, 17:23
автор: Tutich
Открытая тема (нет новых ответов) Битрикс скрипт нативной установки
3 Nemo 2451 20.11.2022, 10:09
автор: Webmaster24
Открытая тема (нет новых ответов) Посоветуйте скрипт интернет-магазина
(партнерская программа - критична!)
9 Aloof 7365 2.12.2021, 15:03
автор: Ilonek


 



RSS Текстовая версия Сейчас: 20.4.2024, 17:16
Дизайн