1

Topic: Простой способ создания пользователей на PunBB

Наверное при первой мысли о создании пользователей на форуме PunBB сразу же вспоминается офф расширение Add Users. Способ хороший и к тому же безопасный, но немного сложноватый. Есть еще один способ, намного проще. но сразу предупреждаю - не безопасный, особенно если форум распространен и на нем кучкуется много народу. Если проект только развивается и вам нужно добавить много-много юзеров (у всех разные причины для этого могут быть), то можно воспользоваться следующим модом.

Желательно разместить в файле footer.php сразу после:

if (!defined('FORUM'))
   exit;

вот это код:

$my_ip = '127.0.0.1';
if (isset($_GET['new_user']) && !empty($_GET['new_user']) && ($my_ip == get_remote_address()))
{
   $username = forum_trim($_GET['new_user']);
   $salt = random_key(12);
   $password_hash = forum_hash($username, $salt);
   
   $query = array(
      'SELECT'   => 'COUNT(u.id)',
      'FROM'      => 'users AS u',
      'WHERE'      => 'u.username=\''.$forum_db->escape($username).'\''
   );
   $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
   
   if ($forum_db->result($result) < 1)
   {
      $user_info = array(
         'username'            =>   $username,
         'group_id'            =>   $forum_config['o_default_user_group'],
         'salt'               =>   $salt,
         'password'            =>   $username,
         'password_hash'         =>   forum_hash($username, $salt),
         'email'               =>   '',
         'email_setting'         =>   $forum_config['o_default_email_setting'],
         'timezone'            =>   $forum_config['o_default_timezone'],
         'dst'               =>   $forum_config['o_default_dst'],
         'language'            =>   $forum_config['o_default_lang'],
         'style'               =>   $forum_config['o_default_style'],
         'registered'         =>   time(),
         'registration_ip'      =>   get_remote_address(),
         'activate_key'         =>   'NULL',
         'require_verification'   =>   false,
         'notify_admins'         =>   false
      );
      
      add_user($user_info, $new_uid);
      $forum_flash->add_info('Hello '.$username);
      redirect(forum_link($forum_url['index']), '');
   }
}

Теперь расскажу как это работает.
Узнайте ваш IP адрес и замените параметр:
$my_ip = '127.0.0.1';

Сохраните изменения в файле footer.php и перейдите на главную страницу форума. Далее все просто. вам нужно будет всего лишь пройти по ссылке:

yoursite.com/index.php?new_user=PunBB

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

Что же является паролем?

Здесь все просто. Паролем является логин пользователя. Вот это как раз таки и небезопасно. Поэтому, каждый раз после регистрации пользователя, вам нужно будет предупредить того кому вы регистрировали учетную запись о смене пароля.
Если же юзеры вам понадобились в качестве фейковых, то для себя можно придумать краткий префикс из цифр или нескольких хитрых символов в виде пароля подкорректировав следующую строку:

$password_hash = forum_hash($username, $salt);

заменив ее на:

$pass = 'your-pass-123';
$password_hash = forum_hash($pass, $salt);

то есть, теперь для фейковых юзеров у вас будет единый пароль: your-pass-123