Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для PtokaX _ Вход на хаб по коду доступа с сайта

Автор: Otshelnik-Fm 29.6.2009, 13:16

Есть идея связки - тематический сайт и хаб. Сайт фильмов ужасов - и хаб соответственно для любителей жанра.

На сайте в виде виджета (дополнительного модуля присоединяемого командой include) формируется окно в котором высвечивается код для доступа на хаб(но можно и в шапку сайта сделать будет - неважно). В базу данных код доступа случайно генерируется (mathrandom) с помощью lua скрипта и записывается в базу данных. Когда на хаб заходит пользователь выскакивает окно "Введите код доступа" - вот в него вводится это случайное число взятое с тематического сайта. Числа генерируются раз в сутки - таким образом если человек отключился от хаба - ему надо будет зайти на сайт и взять оттуда код доступа. Если он ввел не верный код - то выводится сообщение "Код доступа неверен - всегда актуальный код находится на странице http:****.ru" и выкидывает с хаба.

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


Реализовать своими силами не смогу - подсобите пожалуйста

Думаю и для хаба сообщества mydc.ru эта функция была бы фишкой

Автор: Setuper 29.6.2009, 14:14

Реализовать никто не сможет.

Этот вопрос равносилен вопросу о регистрации через веб с заносом информации о регистрации в базу данных.
То есть отказ от стандартной регистрации ptokax и создании собственной регистрации.

Проблема в команде протокола $GetPass. А точнее в задержке по отсылке какой либо команды до получения команды $MyPass со стороны клиента.

Автор: Otshelnik-Fm 29.6.2009, 14:22

Но так это же не регистрация - это, к примеру, автобан или автокик для тех кто не ввел в окно скрипта нужную информацию. т.е. происходит сравнение и если оно не равно - то кик действует или перенаправление

Автор: Setuper 29.6.2009, 14:26

Ну давай по порядку.

Клиент заходит на хаб. Что с ним происходит? Каким образом он должен передавать на хаб код доступа?

Автор: Otshelnik-Fm 29.6.2009, 14:51

Цитата
Хаб -> Клиент: ---> $Lock EXTENDEDPROTOCOL[некий_ключ_хаба] Pk=PtokaX
Клиент -> Хаб: ---> $Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch ZPipe0 |$Key [ключ_сгенерированный_по_полученному_ключу_хаба]|$ValidateNick [Мой_ник]|
Выполнение скриптовой функции SupportsArrival
Выполнение скриптовой функции KeyArrival (выполнение не происходит, если проверка ключа отключена)
Выполнение скриптовой функции ValidateNickArrival
Хаб -> Клиент: ---> $Supports NoHello|$GetPass|
Клиент -> Хаб: ---> $MyPass [Мой_пароль]|
- так вот после запроса пароля вводить это число. Другое слово как сделать чтобы пассворд для всех пользователей был одинаков?? или чтобы при входе пользователя автоматом к его нику присваивался пароль из кода доступа - тогда можно сделать это.

или гдето видел скрипт тут для отправки в pm надо было ввести слово или сосчитать сколько будет 3+5.... тогда можно после отправки команды поиска по хабу - также сделать это окно....


Ну что настолько узкий протокол nmdc что не найти выход?

Автор: Setuper 29.6.2009, 15:14

Её раз повторяю, что после отправки пользователю команды $GetPass у пользователя высвечивается окошко в которое нужно ввести код
однако хаб отсылает пользователю все остальные данные, то есть пользователь входит на хаб (это будет видно за окошком). Но самое плохое то, что после отправки на хаб пароля (так как пользователь уже вошёл), нарушится последовательность команд протокола и хаб просто закроет соединение с этим клиентом.

Поэтому никак это не обойти!

Вот скрипт для проверки того о чём я говорю:

Код
function ValidateNickArrival(tUser)
  Core.SendToUser(tUser, "$GetPass|")
end

Автор: Wariner 29.6.2009, 19:09

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

Автор: Otshelnik-Fm 29.6.2009, 19:53

ну да человек заходит - его пускает на хаб. через некоторое время ему нужно ввести код с сайта. Об этом и говорю. А до ввода сообщения ему недоступны все блага хаба - личка, чат, поиск, скачка. Мне не жалко что он увидит количество пользователей - или прочитает чат (МОТД).
Насколько я понимаю ему сообщение покажется сразу же с вводом пароля при заходе -т.е. ему ждать не придется?...
Другой вопрос -как решить частые заходы его на хаб? и как ,или насколько, его будет кикать с хаба. Не создаст ли это значительную нагрузку на хаб? Быть может рациональней это сделать только для незарегистрированных пользователей? А зарегенным это поле ввода разблокирования хаба просто не высвечивать?

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

А может быть возможно осуществить вот так: "как сделать чтобы пассворд для всех пользователей был одинаков?? или чтобы при входе пользователя автоматом к его нику присваивался пароль из кода доступа - тогда можно сделать это."

Автор: Nickolya 1.7.2009, 9:31

С хабом все довольно жестко, да, но почему бы не сделать так: юзер заходит на хаб, там проверяется наличие его ника в базе данных, если его там нет, отсылаем ему в приват ссылку, в которой в параметрах указан его ник, к примеру как описано http://mydc.ru/topic289.html?view=findpost&p=6594, юзер заходит на сайт, где в форме он уже видит свой ник, тут у меня 2 варианта: либо на этом заканчиваем, либо если сильно хочется, мы в том сообщении где ссылка отправляем юзеру и код, который надо ввести, можно извернуться и сделать этот код уникальным для каждого ника, для этого заносим его ник в базу с кодом на проверку. Ну вот, юзер прошел проверку и мы заносим его ник в базу, как бы создаем сессию, допустим, на 24 часа. При заходе на хаб проверяется эта сессия и если ее нет - выкидываем с хаба при этом отсылая сообщение, если сессия присутствует мы юзера не трогаем. Вот и все, критикуйте-дополняйте-обсуждайте, идею мы всегда создадим big_smile.gif

Автор: Otshelnik-Fm 1.7.2009, 10:04

А возможно ли так:

Цитата
А может быть возможно осуществить вот так: "как сделать чтобы пассворд для всех пользователей был одинаков?? или чтобы при входе пользователя автоматом к его нику присваивался пароль из кода доступа - тогда можно сделать это."

Автор: Otshelnik-Fm 15.7.2009, 10:24

Не хотелось чтобы эта тема умерла. Значит не обойти принципов регистрации? Не существует ли обьединения реги и базы в mysql?
xml файл нельзя передавать в базу? А если можно, то думаю наоборот - из базы в xml также возможно. (но тут уже тема просто в веб регистрацию перерастает)

Автор: Wariner 15.7.2009, 10:50

xml файл пишется только 1 ра при выключении хаба а читается только при включении! поэтому дохлый номер)))

Автор: Setuper 15.7.2009, 13:05

Почему же. Существуют функции api, которые принудительно сохраняют в xml инфу.