0 Пользователей и 1 Гость просматривают эту тему.
  • 48 Ответов
  • 16972 Просмотров
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
какой плагин качать то надо ? и что это за вложения в 33 посте ?
можно по подробней что и куда

Вынес в отдельную тему, чтобы не сбивать с толку посетителей темы, созданной ART-DELI

РЕШЕНИЕ для 1.5.6.3 - блокировка повторного голосования по IP или куки - плагин (обновлён) + небольшой хак

Переключение режимов IP-куки производится в настройках плагина (через менеджер плагинов)

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

Имеет в бОльшей степени смысл, если разрешено голосование для незарегистрированных, так как для зарегистрированных там есть проверка по userid.

Хотя работает для обоих вариантов, причём как для обычного, так и для AJAX-голосования.

Если разрешено голосование для незарегистрированных пользователей - плагин не даёт проголосовать с тем же IP за ту же фотографию.

Если разрешено голосование только для зарегистрированных пользователей, то сначала срабатывает имеющаяся проверка по userid.
Далее - если userid другой, то другому зарегистрированному пользователю с тем же IP не даёт проголосовать уже плагин.

Выводится сообщение "Оценка не засчитана: Вы можете отдать свою оценку только один раз."
Повторно голос в базу не пишется.


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


Итак, что нужно сделать:

Устанавливаем и публикуем плагинчик, в настройках плагина выбираем нужный режим (по IP или по куки)


+ в файле components\com_joomgallery\models\vote.php вставляем в районе строки 172 (перед комментарием // Trigger event 'onJoomBeforeVote'):

Код
$row->picid = $this->_id;    $row->userip = $_SERVER['REMOTE_ADDR'];

Больше ничего не требуется для первого варианта.



Ещё один вариант - для более детальной проверки (не только IP, на случай, если на одном IP сидит не один пользователь) можно немного изменить хак, вместо

Код
$row->userip = $_SERVER['REMOTE_ADDR'];

сделать например так:

Код
$row->userip    = $_SERVER['REMOTE_ADDR'].'-'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'-'.$_SERVER['HTTP_USER_AGENT'];

И далее в components\com_joomgallery\models\vote.php в строке 201 - то же самое.

Единственное ещё - в базе в таблице #__joomgallery_votes увеличить размер поля userip - дефолтное там varchar(15)

[вложение удалено Администратором]
« Последнее редактирование: 25.02.2011, 22:10:15 от SDKiller »
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
varchar(15) на что изменить надо
И где искать установленій плагин ? в плагинах Joomla или в самой JoomGallery
« Последнее редактирование: 25.02.2011, 15:58:10 от ArtTeam »
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
varchar(15) на что изменить надо

Можно varchar(255)

Цитировать
И где искать установленій плагин ? в плагинах Joomla или в самой JoomGallery

В админке в менеджере плагинов Joomla
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
« Последнее редактирование: 25.02.2011, 17:06:26 от ArtTeam »
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
У меня работает.
В таблице #__joomgallery_votes в поле userip что пишется?
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
У меня работает.
В таблице #__joomgallery_votes в поле userip что пишется?
спасибо вроде уже все работает, а есть ли ограничение на количество голосов  varchar(255)
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
а есть ли ограничение на количество голосов  varchar(255)

Не совсем понял вопрос.
С включённым плагином у нас получается ограничение - один голос на одного проголосовавшего
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
при varchar(255) какое количество человек сможет голосовать ? 1000, 2000, ?
и как я понимаю при втором хаке динамичный айпи уже не помогает, получается привязка идет к  браузеру.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
при varchar(255) какое количество человек сможет голосовать ? 1000, 2000, ?

От этого не зависит.
Длина поля увеличена, потому что у нас теперь вместо IP фиксированной длины получается строка, включающая в себя несколько характеристик.

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

С динамическим IP при обоих вариантах ничего не поделаешь.
При 2-м варианте привязка идёт комплексная по нескольким характеристикам, сделано это наоборот чтобы не отсеивать по IP других пользователей.
С другой стороны, при привязке только к USER_AGENT возможны совпадения этого параметра у разных пользователей.

Для динамического IP вариант только через куки.
Сделаю попозже и такой.
« Последнее редактирование: 25.02.2011, 20:28:19 от SDKiller »
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
Цитировать
Для динамического IP вариант только через куки.
Сделаю попозже и такой.
А когда планируете это осуществить ?
*

Beer

  • Moderator
  • 1096
  • 41 / 1
  • БИРУ - БИР!
Поставил по первому варианту - все работает путем!
SDKiller +1

Сделай пожалуйста кнопочку под фото для просмотра проголосовавших и поставленных ими оценок!
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А когда планируете это осуществить ?

Сделал. Обновил файл плагина в первом посте.
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0

Цитировать
Конечно, если в браузере пользователя стоит очищать куки при выходе (как у меня например  Grin) то куки тоже не помогут.
А как же тогда лучше провести фото голосование ?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А как же тогда лучше провести фото голосование ?

Ну что поделать )))

Захотят накрутить - накрутят.
Есть ведь ещё прокси-анонимайзеры, а еще бывают проги для подмены не только IP, но и user_agent и даже MAC-адреса сетевой карты.
А ещё есть буксы и САР, где люди за 1-3 цента покупают голоса.
*

cry_wolf

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
большое спасиба работает от повторного голосавание теперь остался вопрос если ставлю по кукам то я раз в сутки могу с одного компа голосовать за одну фотографию.... Тоже самое условие таже соблюдается и для зарегестрированых пользывателей...
« Последнее редактирование: 01.03.2011, 22:02:15 от cry_wolf »
*

Garum

  • Давно я тут
  • 654
  • 47 / 0
  • Акула пера
Второй способ не работает у меня.
http://izans.ru/oboi?view=category&catid=6 фото самых красивых девушек на рабочий стол
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Второй способ не работает у меня.

Конкретнее. Я сам уже в способах запутался )))
*

Garum

  • Давно я тут
  • 654
  • 47 / 0
  • Акула пера
Ещё один вариант - для более детальной проверки (не только IP, на случай, если на одном IP сидит не один пользователь) можно немного изменить хак, вместо
Вот  этот. Делаю все как написано, и по IP не блокирует голосованиею
http://izans.ru/oboi?view=category&catid=6 фото самых красивых девушек на рабочий стол
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Вот  этот. Делаю все как написано, и по IP не блокирует голосованиею
Посмотрите в таблице #__joomgallery_votes - какие значения записываются в поле userip

Спасибо, все отлично работает! Вот бы еще сделать, чтобы после голоса форма голосования пряталась, а вместо нее надпись типа "Ваш голос принят и тп." Было бы совсем хорошо!
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Вот бы еще сделать, чтобы после голоса форма голосования пряталась
В принципе это можно сделать на уровне шаблона с помощью js, назначив для кнопки голосования событие, по которому для формы голосования будет назначаться style.display="none"
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
SDKiller
А вы не могли бы добавить для голосования подтверждения по e-mail
Чтобы когда  проголосовал за фото ему на почту приходила ссылка для подтверждения голоса и тока после подтверждения голос был учтен.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
SDKiller
А вы не могли бы добавить для голосования подтверждения по e-mail
Чтобы когда  проголосовал за фото ему на почту приходила ссылка для подтверждения голоса и тока после подтверждения голос был учтен.

Навскидку такое плагином не решить.
То есть отправку на email можно сделать плагином, а вот учёт голоса после подтверждения - это уже надо компонент ковырять
*

ArtTeam

  • Захожу иногда
  • 186
  • 0 / 0
Навскидку такое плагином не решить.
То есть отправку на email можно сделать плагином, а вот учёт голоса после подтверждения - это уже надо компонент ковырять
Так єту проблему что не как не решить ?
И как можно для оценки прикрутить капчу ?

*

Beer

  • Moderator
  • 1096
  • 41 / 1
  • БИРУ - БИР!
 Как запретить юзеру голосовать за свою же фотку?
*

masyanya

  • Новичок
  • 3
  • 0 / 0
Подскажите, пожалуйста, как сделать, чтобы пользователь мог голосовать только 1 раз и только 1 фото?
*

ziArt

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Как сделать активным сразу два варианта зашиты и по айпи и куки?
*

Sharks_andron

  • Захожу иногда
  • 67
  • 1 / 0
Спасибо за труды.
Первый вариант применил - понравилось, посмотрим и дальше как будет.

*

quexx

  • Новичок
  • 6
  • 0 / 0
Удалили меня что-то.. стало быть давно отсутствовал. Но не об этом..
Подскажите, пожалуйста, как сделать, чтобы пользователь мог голосовать только 1 раз и только 1 фото?
Дак оно так и есть.. или я чего-то не понял..?
Как сделать активным сразу два варианта зашиты и по айпи и куки?
Вот и у меня такая же проблема, то у кого-то куки каждый раз сбрасываются, то не возможно по IP проверить.. Думаю стоит дописать плагин третьим вариантом где можно выбрать IP+cookie сразу же.. Никто не против если я доделаю как будет минутка и сюда положу?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Да ради бога, заодно можете обновить под новую версию JG
Я давно не следил за её обновлениями
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с дублем страниц в JoomGallery 3.4

Автор qvagin

Ответов: 3
Просмотров: 2263
Последний ответ 23.01.2023, 13:30:08
от e2
Стили раскладки фото в JoomGallery (masonry и mosaic)

Автор marbert

Ответов: 4
Просмотров: 1290
Последний ответ 22.11.2022, 06:28:20
от marbert
JoomGallery 3.6.0 если отсутствует поле Название при редактировании фотографии

Автор Beer

Ответов: 0
Просмотров: 1346
Последний ответ 09.09.2022, 20:07:49
от Beer
После обновления до JoomGallery 3.6 некорректно работает водяной знак

Автор Maffo

Ответов: 3
Просмотров: 1225
Последний ответ 23.08.2022, 06:21:58
от marksetter
j3.8.13 + JoomGallery 3.3.4 = RuntimeException: Недопустимое поле: cid

Автор Sergeych

Ответов: 7
Просмотров: 3565
Последний ответ 22.03.2021, 17:24:59
от Gammy2005