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

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

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

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