Новости Joomla

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

Fill_

  • Новичок
  • 6
  • 0 / 0
Здравствуйте!
Использую стандартный плагин user profile.
При регистрации новых пользователей необходимо реализовать запись их IP-адресов (в таблицу jos_user).

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

Догадываюсь, что искать ответ необходимо в файлах :
/components/com_users/models/registration.php
/public_html/libraries/joomla/user/user.php

Но как то не догоняю. Появились уже сомнения. Может кто подскажет, в какой функции непосредственно выполняется запись в базу данных? Может есть примеры?

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

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
а какой именно IP вы собираетесь записывать? у подавляющего большинства он динамический, привязываться к IP в наше время глупо, это актуально только на время текущей сессии, а для контроля сессии есть инструменты понадежнее, нежели привязка к IP
*

Fill_

  • Новичок
  • 6
  • 0 / 0
Внешний IP адрес пользователя. Динамический или статический значения не имеет.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Напишите плагинчик на событие onUserBeforeSave и проверяйте IP.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Fill_

  • Новичок
  • 6
  • 0 / 0
В файле: /public_html/libraries/joomla/user/user.php
             В функции: public function bind(&$array), после блока IF:

                    if (strlen($username) > 150)
         {
            $username = substr($username, 0, 150);
            $this->set('username', $username);
         }

                  Добавил:
         if ( empty( $array['IP_reg'] ) ) {
                        $array['IP_reg'] = $_SERVER['REMOTE_ADDR'];
         }


В файле: /public_html/plugins/user/profile/profile.php
              В функции: public function onUserBeforeSave, в самом начале добавил код:

            $ip=(string)$_SERVER['REMOTE_ADDR'];
      $db = JFactory::getDbo();
      $query = $db->getQuery(true)
         ->select($db->quoteName('username'))
         ->from($db->quoteName('jos_users'))
         ->where($db->quoteName('IP_reg'). ' = '. $db->quote($ip));
   
      $db->setQuery($query);
      
      $list = $db->loadResult();
      
      if (!empty($list))
      {
         return false;
      }

                            
В БД, в таблице jos_users добавил столбец IP_reg

В случае регистрации пользователя с уже имеющимся IP адресом в базе, вылетает сообщение - Не удалось зарегистрировать пользователя, и соответственно пользователь не регистрируется.

Опыта доработки/разработки модулей, плагинов, компонентов Joomla у меня нет, поэтому подозреваю, что у данного способа могут быть слабые места?
А еще хотелось бы, чтобы вылетало сообщение - Не удалось зарегистрировать пользователя. Пользователь с Вашим IP уже зарегистрирован. В каком направлении смотреть?
« Последнее редактирование: 12.02.2017, 23:36:25 от Fill_ »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Плагины нужны для расширения функционалов без правки ядра, а вы хакнули само ядро, так что писать плагин уже нет смысла.
Думаю, что во избежание создания нового поля можно засунуть IP в таблицу profile, а сообщение можно сгенерировать таким образом:
Код: php-brief
JFactory::getApplication()->enqueueMessage('сообщение', 'тип');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
IP у многих статика, но после блокировки ру тренера даже домохозяйки её обходят. Да и делается это в 1 клик. Это раз. Два люди выходят в сеть с разных мест даже если предположить что везде IP статический то все равно их может быть несколько. Что уж говлрить про кафе. Поэтому такая проверка не только бессысленна но и нанесет вред.  Ибо скажем из кафе на вашем сайте можно не зарегистрироваться. Что же реализации. Читайте про плагины для юзеров.
P.S. да и вообще сейчас в ходу авторизация через соц . сети есть даже сайты где обычной реги просто нет.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Fill_

  • Новичок
  • 6
  • 0 / 0
IP у многих статика, но после блокировки ру тренера даже домохозяйки её обходят. Да и делается это в 1 клик. Это раз. Два люди выходят в сеть с разных мест даже если предположить что везде IP статический то все равно их может быть несколько. Что уж говлрить про кафе. Поэтому такая проверка не только бессысленна но и нанесет вред.  Ибо скажем из кафе на вашем сайте можно не зарегистрироваться. Что же реализации. Читайте про плагины для юзеров.
P.S. да и вообще сейчас в ходу авторизация через соц . сети есть даже сайты где обычной реги просто нет.

Повторюсь еще раз - специфика проекта. Пускай хоть 100 раз зарегистрируется, но с разных IP-адресов. Пускай заходит хоть откуда, но регистрируется с разных IP.
Читайте про плагины для юзеров. - ссылочку?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
По гуглить совсем не? Потратил 15 секунд https://docs.joomla.org/Plugin/Events/User
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль аккордеон меню на js, необходимо допилить

Автор makkons

Ответов: 0
Просмотров: 924
Последний ответ 01.04.2014, 16:06:16
от makkons
Модуль Profile Completeness

Автор ReTEr

Ответов: 0
Просмотров: 876
Последний ответ 26.02.2013, 18:38:33
от ReTEr
модуль к2 user

Автор garomi

Ответов: 0
Просмотров: 1000
Последний ответ 29.09.2012, 15:54:02
от garomi
Плагин JCH_Optimize - нет файла CSS по указанному адресу.

Автор Gorgeous92

Ответов: 6
Просмотров: 1490
Последний ответ 23.04.2011, 21:05:19
от fatalerror
Пропадают user модули

Автор bog74

Ответов: 1
Просмотров: 1665
Последний ответ 03.10.2009, 22:02:26
от zvolle