Проблемы после интеграции с phpBB2 Проблемы после интеграции с phpBB2
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Проблемы после интеграции с phpBB2

Started by Rufond, October 29, 2012, 08:33:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Rufond

Форум версии 2.0.23 был установлен в связке с галереей версии 1.4... сейчас перехожу на 1.5.20, в принципе всё установилось нормально и даже интеграция прошла успешно, вернее почти успешно... как выяснилось при попытке увидеть список пользователей галерея выдаёт ошибку
Quote
Критическая ошибка
Произошла ошибка при обращении к базе данных.

While executing query 'SELECT u.user_id AS id, ug.group_id AS group_id FROM `бд-форума`.префикс_users AS u, `бд-форума`.префикс_user_group AS ug WHERE u.user_id=ug.user_id AND u.user_id='2537'' in include/functions.inc.php on line 6521

mySQL error: SELECT command denied to user 'пользователь-бд' for table 'префикс_users'

Файл: .../include/functions.inc.php - Строка: 270
непонятно куда копать, возможно необходимо адаптировать запрос к базе данных, вот только пока неразобрался какая функция за это отвечает

Alex Revo

Из-за первоначальной правки при размещении поста я дал неверный совет. Вам нужно смотреть в настройки базы данных.
Попробуйте перезагрузить привилегии в phpmyadmin.

Rufond

спасибо, возможно и так, посмотрю в этом направлении... сейчас подменил в 1.5 usermgr.php от 1.4.27 после этого список пользователей открылся, но в нём не работает ни поиск ни сортировка

Rufond

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

Rufond

вообщем склоняюсь что проблемы скорее всего вот в этой функции

/**
* cpg_db_error()
*
* Error message if a query failed
*
* @param $the_error
* @return
**/

function cpg_db_error($the_error, $link_id)
{
    global $CONFIG, $lang_errors, $LINEBREAK;

    log_write("$the_error the following error was encountered: $LINEBREAK" . mysql_error($link_id), CPG_DATABASE_LOG);
   
    if ($CONFIG['debug_mode'] === '0' || ($CONFIG['debug_mode'] === '2' && !GALLERY_ADMIN_MODE)) {
        cpg_die(CRITICAL_ERROR, $lang_errors['database_query'], __FILE__, __LINE__);
    } else {
        $the_error .= $LINEBREAK . $LINEBREAK . 'mySQL error: ' . mysql_error($link_id) . $LINEBREAK;
        $out        = "<br />" . $lang_errors['database_query'] . ".<br /><br/>
                <form name=\"mysql\" id=\"mysql\"><textarea rows=\"8\" cols=\"60\">" . htmlspecialchars($the_error) . "</textarea></form>";
        cpg_die(CRITICAL_ERROR, $out, __FILE__, __LINE__);
    }
}


это из ../include/functions.inc.php

Alex Revo

Эта ф-ция выводит лог сообщения об ошибке, проблема не в этом, проблема где-то с правами, БД не дает вам сделать нужный запрос. Наберите тот же запрос в pma, все будет работать, наверняка. У вас 1 база для форума и галереи или 2 разных?

Rufond

нет две разных, с функцией я погорячился, не ту запостил, имелась ввиду вот эта

function cpg_get_groups($user_id) {
    global $cpg_udb;
    $f = $cpg_udb->field;
    if (isset($cpg_udb->usergroupstable)){
        $sql = "SELECT u.{$f['user_id']} AS id, ug.{$f['usertbl_group_id']} AS group_id "
                . "FROM {$cpg_udb->usertable} AS u, {$cpg_udb->usergroupstable} AS ug "
                . "WHERE u.{$f['user_id']}=ug.{$f['user_id']} AND u.{$f['user_id']}='{$user_id}'";
    } else {
        $sql = "SELECT u.{$f['user_id']} AS id, u.{$f['usertbl_group_id']} AS group_id "
                . "FROM {$cpg_udb->usertable} AS u "
                . "WHERE u.{$f['user_id']}='{$user_id}'";
    }
    return $cpg_udb->get_groups(mysql_fetch_assoc(cpg_db_query($sql)));
}


Alex Revo

Наверное проблема в том, что пользватель БД галереи пытается получиться данные из БД форума или наоборот, не имея на то привелегий.

Rufond

возможно, но эта засада где-то в коде пятёрки... ведь простая подмена usermgr.php от версии 1.4.27 уже позволяет открыть список

Rufond

отключил интеграцию и погонял галерею в режиме отладки с логами... результат неутешительный, в основном ошибки по неопределённым переменным... видимо придётся мириться с 1.4.27, но в ней есть другая ошибка, может кто подскажет как исправить,
Quote
галерея 1.4.27 при просмотре свойств альбома (на странице modifyalb.php) в выпадающем списке (справа в углу) названия альбомов дублируются, получается что альбомов больше чем есть ровно в два раза

Makc666

Quote from: Rufond on October 29, 2012, 08:33:52 PM
непонятно куда копать, возможно необходимо адаптировать запрос к базе данных, вот только пока неразобрался какая функция за это отвечает

Вы это ошибку руками меняли?

Почему у Вас в ней русские буквы в названии таблицы и пользователя:
'префикс_users'
'пользователь-бд'

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

Это не проблема 1.5.20.
Это Вы неправильно настроили права доступа или неправильно указали имя пользователя и пароль от базы данных, ровно как и адрес хоста.

Критическая ошибка
Произошла ошибка при обращении к базе данных.

While executing query 'SELECT u.user_id AS id, ug.group_id AS group_id FROM `бд-форума`.префикс_users AS u, `бд-форума`.префикс_user_group AS ug WHERE u.user_id=ug.user_id AND u.user_id='2537'' in include/functions.inc.php on line 6521

mySQL error: SELECT command denied to user 'пользователь-бд' for table 'префикс_users'

Файл: .../include/functions.inc.php - Строка: 270

Alex Revo

Я тоже так думал, но выяснилось, что топикстартер специально переписал код в теме, чтобы скрыть эти данные, а на самом деле там забито что надо. Тут проблема с правами юзера, который делает этот запрос к БД.