Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Проблема с добавлением модератора или пользователя в группу

Темы по наиболее часто задаваемым вопросам по phpBB 2.0.x. Читать в первую очередь!
AEC

Проблема с добавлением модератора или пользователя в группу

Сообщение AEC »

При попытке сделать пользователя модератором любого из разделов выдаёт ошибку:

Код: Выделить всё

Couldn't update private forum permissions

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)' at line 2

INSERT INTO phpbb_auth_access (forum_id, group_id, auth_view, auth_read, auth_post, auth_reply, auth_edit, auth_delete, auth_vote, auth_pollcreate, auth_attachments, auth_download, auth_mod) VALUES (8, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)

Line : 388
File : /usr/home/aeclub/www/www.aeclub.net.ua/admin/admin_ug_auth.php
В чем причина?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Зарегистрирован: 18 лет 3 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Где-то у него с группами непорядок.
Запустите нижепредложенное и выложите результат:

Код: Выделить всё

<?php
//*****  check users and user groups ****//

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_SEARCH);
init_userprefs($userdata);
// End session management

$sql = "SELECT user_id, username
    FROM " . USERS_TABLE ."
    WHERE user_id > 0";
if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, 'Could not obtain user list', '', __LINE__, __FILE__, $sql);
}

$liste ='';
while ( $row = $db->sql_fetchrow($result) )
{
   $username = $row['username'];
   $user_id = $row['user_id'];
   $usergroup = '';

   $sql1 = "SELECT ug.group_id
          FROM " . USER_GROUP_TABLE ." ug, ". GROUPS_TABLE. " g
          WHERE ug.user_id = $user_id
            AND ug.group_id = g.group_id
            AND g.group_single_user  = 1
            ";

   if ( ($result1 = $db->sql_query($sql1)) )
   {
       $row1 = $db->sql_fetchrow($result1);
          $usergroup =( ( $row1['group_id'] != '' ) ? $row1['group_id'] : 'User has no user group'.$row1 );

   }

          if (!($row1['group_id'] != ''))
          {

         $sql2 = "SELECT MAX(group_id) AS total
            FROM " . GROUPS_TABLE;
         if ( !($result2 = $db->sql_query($sql2)) )
         {
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sq2l);
         }

         if ( !($row2 = $db->sql_fetchrow($result2)) )
         {
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sql2);
         }
         $group_id = $row2['total'] + 1;


         $sql3 = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator)
            VALUES ($group_id, '', 'Personal User', 1, 0)";
         if ( !($result3 = $db->sql_query($sql3, BEGIN_TRANSACTION)) )
         {
            message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql3);
         }

         $sql4 = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
            VALUES ($user_id, $group_id, 0)";
         if( !($result4 = $db->sql_query($sql4, END_TRANSACTION)) )
         {
            message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql4);
         }


             $usergroup = $usergroup.', adding user group '.$group_id;
          }


   $liste .= ( ( $liste != '' ) ? '<br> ' : '' ) . $username.' <b>'.$usergroup.'</b>';
}

message_die(GENERAL_MESSAGE,'Users:<br>'.$liste);

?>
Последний раз редактировалось Xpert 14.11.2005 7:53, всего редактировалось 1 раз.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
AEC

Сообщение AEC »

Xpert, спасибо!
Я не буду выкладывать результат, т.к. запустив этот файл ещё раз уже не увидел "проблемных" юзеров. их было около десятка.
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Зарегистрирован: 17 лет 4 месяца

Сообщение Сергей Секирин »

Так что же это за ошибка? У меня сейчас тоже выдало:
При попытке изменения статуса пользователя на Администратора выдаёт:
Общая ошибка
Couldn't delete auth access info
ОТЛАДЧИК
SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND auth_mod = 0' at line 3
DELETE FROM bhpbb_auth_access WHERE group_id = AND auth_mod = 0
Line : 180
File : admin_ug_auth.php

При попытке назначить пользователя модератором:
Общая ошибка
Couldn't update private forum permissions
ОТЛАДЧИК
SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 2
INSERT INTO bhpbb_auth_access (forum_id, group_id, auth_mod) VALUES (4, , 1)
Line : 390
File : admin_ug_auth.php
Откуда этот group_id пустой и причём он здесь. И, главное - что же делать? У меня стоит мод admin_userlist, через который пользователь и был добавлен...

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

Это я к тому, что проблема удалилась (спасибо Xpert'у) после запуска этого скрипта - конкретно у того пользователя не оказалось группы. Но какая группа имелась ввиду? У меня вообще нет групп пользователей, так что я и гадаю :? Поясните - просто интересно.
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
Егор Наклоняев
phpBB 2.0.4
Сообщения: 404
Зарегистрирован: 17 лет 8 месяцев
Откуда: оттуда

Сообщение Егор Наклоняев »

У каждого пользователя есть группа из него самого. Это нужно для настройки прав доступа.
Аватара пользователя
Сергей Секирин
phpBB 2.0.0
Сообщения: 244
Зарегистрирован: 17 лет 4 месяца

Сообщение Сергей Секирин »

Спасибо, теперь понятно. Неясно только почему её не оказалось и только у одного единственного пользователя из всех, и именно у того, которого понадобилось назначить модератором. Судьба ... :)
Апология здравомыслия - странное занятие Православия:-)
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 16 лет 4 месяца

Сообщение Nemo1987 »

Код: Выделить всё

Users:
Nemo 2
Декан 5
Drug User has no user group, adding user group 9
Л@пк@ User has no user group, adding user group 10
Вот это он мне выдал. Что делать дальше?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Зарегистрирован: 18 лет 3 месяца
Поблагодарили: 2 раза

Сообщение Xpert »

Это означает, что у двух пользователей были пробелмы с группами, но они успешно решены.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Nemo1987
phpBB 2.0.7
Сообщения: 560
Зарегистрирован: 16 лет 4 месяца

Сообщение Nemo1987 »

Xpert, вот :) Большое спасибо :)
Gvozd
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 16 лет

Сообщение Gvozd »

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

Код: Выделить всё

$sql2 = "SELECT MAX(group_id) AS total 
            FROM " . GROUPS_TABLE; 
         if ( !($result2 = $db->sql_query($sql2)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sq2l); 
         } 

         if ( !($row2 = $db->sql_fetchrow($result2)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not obtain next group_id information', '', __LINE__, __FILE__, $sql2); 
         } 
         $group_id = $row2['total'] + 1; 


         $sql3 = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user, group_moderator) 
            VALUES ($group_id, '', 'Personal User', 1, 0)"; 
         if ( !($result3 = $db->sql_query($sql3, BEGIN_TRANSACTION)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not insert data into groups table', '', __LINE__, __FILE__, $sql3); 
         } 

         $sql4 = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending) 
            VALUES ($user_id, $group_id, 0)"; 
         if( !($result4 = $db->sql_query($sql4, END_TRANSACTION)) ) 
         { 
            message_die(GENERAL_ERROR, 'Could not insert data into user_group table', '', __LINE__, __FILE__, $sql4); 
         } 


             $usergroup = $usergroup.', adding user group '.$group_id; 
          } 
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4978
Зарегистрирован: 17 лет 5 месяцев
Откуда: Питер
Благодарил (а): 154 раза
Поблагодарили: 665 раз

Сообщение Siava »

Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
LittleDjaga
phpBB 1.2.0
Сообщения: 11
Зарегистрирован: 16 лет
Откуда: from the space

Сообщение LittleDjaga »

Скажите плз как запустить код который дал Xpert?
Заранее спасибо
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Зарегистрирован: 16 лет 4 месяца
Откуда: Ленинград

Сообщение /DiOs »

LittleDjaga
Записать в файл, положить в корень форума и запустить из браузера.
И если я неправ, пусть старшие товарищи поправят меня
LittleDjaga
phpBB 1.2.0
Сообщения: 11
Зарегистрирован: 16 лет
Откуда: from the space

Сообщение LittleDjaga »

Спасибо !
Gvozd
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 16 лет

Сообщение Gvozd »

Siava, спасибо за мод, но там проблема была в том, что регистрация была совмещена со слаедом и работала из-за этого криво. Раздельно все нормально работает.

Вернуться в «FAQ (phpBB 2.0.x)»