Пропустить

[BETA] Анти-клон 0.1.3

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!

[BETA] Анти-клон 0.1.3

Сообщение Carbofos » 29.06.2006 18:34

Т.к. никто так и не решил сделать мод для публики по борьбе с клонами пользователей, попробую я.
Название условное, просто ничего не пришло в голову, предлагайте свои варианты :)

Схема работы такова:
Модифицируется таблица phpbb_users, в нее добавляется поле user_cleanname, в которое будет записывается строка, которая получится на выходе функции по "нормализации" ника.

Всего предусматривается 2 этапа: (схемы прилагаю)
1) замена букв на похожие по написанию (одним цветом обозначены символы, считающиеся одинаковыми)
Изображение
Это включает в себя также замену нескольких символов на 1, например, bI на Ы

2) выкидывание лишних символов: (серым цветов обозначены символы, которые будут выкидываться)
Изображение

При регистрации, по идее, тестировать на уникальность самих ников не обязательно, т.к. если 2 разных ника приводятся к одному и тому же "нормализованному", то они достаточно похожи.

Соответственно, поле в базе данных должно быть со сравнением cp1251_general_ci

Принимаются дополнительные идеи и замечания.

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

В версии 0.1.1 добавлено автоматическое закрытие форумов при пересчете полей user_cleanname через админку.

В версии 0.1.2 исправлен баг - при переименовании юзеров в админке не обновлялось поле user_cleanname

В версии 0.1.3 исправлен незначительный баг в MOD Template, в самом моде ничего нового.
Вложения
anticlon013.zip
Мод по борьбе с клонами пользователей, версия 0.1.3
(4.13 КБ) Скачиваний: 476
Последний раз редактировалось Carbofos 07.07.2006 16:04, всего редактировалось 10 раз(а).
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение ETZel » 29.06.2006 19:15

Хорошо бы это сразу распространить на европу, не завязываясь на cp1251 (для каждой поддерживаемой кодировки составить свою таблицу, хотя бы для latin1/latin2)
И на cp1251_general_ci лучше не завязываться, а сразу сохранять user_cleanname в такой форме, чтобы для похожих имен поля были бинарно идентичны.

Символы, обозначенные серым цветом на второй картинке, на любом приличном форуме должны быть попросту запрещены (ИМХО).
Для полноты мода можно добавить и ограничения на длину и допустимые символы (правда, такой ограничитель в бете есть на phpbb.com)

Как опцию (спорную) можно добавить идентичность транслитерированных имен: clean('vasya') == clean('вася')
Аватара пользователя
ETZel
phpBB 1.4.4
 
Сообщения: 93
Зарегистрирован: 03.01.2006 10:47
Откуда: Челябинск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение ptzChanger » 29.06.2006 19:48

идея хорошая ... мод нужный ... у меня на форуме уже была драка из-за ника ...
Петрозаводский форум http://sampo.sampo.ru
Общая свалка сообщений.
Связь через ЛС.
Аватара пользователя
ptzChanger
phpBB 1.4.4
 
Сообщения: 81
Зарегистрирован: 03.11.2005 21:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Carbofos » 29.06.2006 23:30

ETZel
Для мира пишущего латиницей, имхо, мод далеко не так востребован, как у нас, но я могу и ошибаться.

Может тогда сделать поле BINARY? Но тогда могут возникнуть непонятки с кодировкой, т.к. буквы расширенной латиницы совпадают с буквами кириллицы и в интернациональных форумах (или просто где кому-то придет в голову зарегить ник с одним из таких символов) может возникнуть путаница.
В случаях же, если поле текстовое, с заданной кодировкой сравнения, скажем, буква ö сохраниться в виде &какой-то-номер; (в случае кириллицы)

Покрывать же таблицей юникод - даже как-то страшно подумать об этом :)

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

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

Добавлено спустя 1 час 23 минуты 58 секунд:

Нужен совет: т.к. в preg_replace в качестве аргумента replace нужно писать конкретные знаки, то как это лучше сделать, учитывая, что некоторые из них будут русскими?
Если я сделаю русскую букву типа chr(...), не будет ли это потенциальным источником проблем при использовании в полевых условиях? Хотя я и прочитал назидание:
bear in mind that php doesn't really care about character sets. php strings are just arbitary byte sequences thier meaning (especailly when you go beyond code 127) depends entirely on whats interpreting the data (in the case of a browser the charset specified in the http headers).

что указывает на то, что при правильной кодировке в базе данных все будет нормально, но у меня есть сомнения... Прошу знающих высказаться :)
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Carbofos » 01.07.2006 13:22

Код вроде работает как надо... переименовал тему в BETA.
Жаль, что Левенштейна прикрутить к моду пока разумной возможности нет...

Добавлено спустя 17 минут 7 секунд:

Но надежды я пока не оставляю :)

Добавлено спустя 25 минут 48 секунд:

Нет, похоже, без встроенных функций не обойтись... иначе только вытаскивать из базы все ники и проводить сравнение :(
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение natali » 03.07.2006 11:55

а с уже зарегеными оно будет что-то делать?
Аватара пользователя
natali
phpBB 2.0.7
 
Сообщения: 293
Зарегистрирован: 30.05.2005 11:18
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 03.07.2006 12:46

natali, насколько я понял:
Carbofos писал(а):Принцип установки следующий:

- закрываем форум в админке, чтобы ничто не мешало (из админки не выходим)

- устанавливаем мод

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

- после того, как пересчет закончится, включаем форум и заодно "Дополнительную проверку имен" (рядом с кнопкой).


Carbofos, мод обязательно потестирую и отпишусь о результатах! :)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение natali » 03.07.2006 12:56

так а что оно предлагает пользователю Вася_?
Аватара пользователя
natali
phpBB 2.0.7
 
Сообщения: 293
Зарегистрирован: 30.05.2005 11:18
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 03.07.2006 13:39

natali
Если уже есть пользователь Вася, то не даст зарегать Вася_
Проверил, мод отлично работает (на первый взгляд) :) Carbofos, респект :)
Правда тестил на .19 версии (лень было тестовый форум на локалхосте обновлять), наверно из-за этого в board_config_body.tpl не нашлось кое-что из инструкции, но это не было препятствием для тестирования :)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение Carbofos » 03.07.2006 19:57

Siava писал(а):в board_config_body.tpl не нашлось кое-что из инструкции

Изя-модом имхо вообще нельзя ничего в темплейтах искать, имхо...
Но это скорее всего у меня косяк. Что это было, не помнишь?

natali
Схема работы тоже приведена, в картинках :)

Добавлено спустя 3 часа 48 минут 37 секунд:

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

Только изменения:
#
#-----[ OPEN ]------------------------------------------
#
admin/admin_users.php
#
#-----[ FIND ]------------------------------------------
#
$username_sql = "username = '"
#
#-----[ IN-LINE FIND ]----------------------------------
#
$username) . "',
#
#-----[ IN-LINE AFTER, ADD ]----------------------------
#
 user_cleanname = '" . normalize_username($username) . "',
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 06.07.2006 16:32

Carbofos

#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/admin/board_config_body.tpl

..........

#
#-----[ FIND ]------------------------------------------
#
  <tr>
    <td class="row1">{L_REGISTRATION_STATUS}<br /><span class="gensmall">{L_REGISTRATION_STATUS_EXPLAIN}</span></td>
#

Вот с этой инструкцией возникают проблемы, так как не найти в файле строчки L_REGISTRATION_STATUS.
После установки в конфигурации в админке кнопка переиндексации не подписана (она пустая), но функциональность мода вроде без ошибок :)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение natali » 06.07.2006 17:28

вопрос в другом....

если УЖЕ есть Вася и Вася+ и Вася_

какое из них "главнее" и что оно предложит двум другим?
Аватара пользователя
natali
phpBB 2.0.7
 
Сообщения: 293
Зарегистрирован: 30.05.2005 11:18
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 06.07.2006 23:33

natali
Ничего не будет с ними, ники так и останутся, но больше не даст зарегать похожих Вась.
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение Carbofos » 07.07.2006 14:48

Siava писал(а):кнопка переиндексации не подписана (она пустая), но

Странно, там должна вставляться $lang['Go'] из lang_main-a, он должен быть в админке виден...

С темплейтом все понятно, сейчас исправлю.

Добавлено спустя 7 минут 52 секунды:

пофиксил...

natali
Не только Вася, но и ВАСя, BACя, \+_++ВаСя-_-_--, ВасЯ и т.п. иными словами, символы заштрихованные серым цветом на схеме не считаются действительными, в смысле придания отличия нику от существующих.
Аватара пользователя
Carbofos
phpBB 2.0.2
 
Сообщения: 158
Зарегистрирован: 04.03.2005 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение natali » 07.07.2006 14:50

название темы поправь )))
Аватара пользователя
natali
phpBB 2.0.7
 
Сообщения: 293
Зарегистрирован: 30.05.2005 11:18
Откуда: Киев
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Бета-версии модов для phpBB 2.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы