Программное определение сессии

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 15 лет 6 месяцев
Благодарил (а): 1 раз

Программное определение сессии

Сообщение bear9 »

Подскажите новичку, почему этот код выдает пустую страницу? Как вывести имя пользователя?

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

<?
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

echo $userdata['user_name'];
?>
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Программное определение сессии

Сообщение rxu »

bear9 писал(а):почему этот код выдает пустую страницу?
bear9 писал(а):$userdata['user_name'];
Должно быть $user->data['username'];

А вообще, для отладки смотрите error.log сервера.
Изображение
bear9
phpBB 1.4.0
Сообщения: 39
Стаж: 15 лет 6 месяцев
Благодарил (а): 1 раз

Re: Программное определение сессии

Сообщение bear9 »

rxu писал(а):Должно быть $user->data['username'];
Все равно пустая страница. При этом, добавив вывод любой другой информации - все ок. Такое ощущение, что значение переменной=''

Вообще я может не совсем то делаю, попробую объяснить суть проблемы - в БД есть ручками созданная таблица, строки которой привязаны к ID пользователя. Мне необходимо вывести все строки этой таблицы на страницу от залогиненого пользователя. Т.е. в уме я понимаю как это сделать - получить ID текущеко пользователя, сделать запрос к БД с выбором только тех строк у которых заданный ID, и полученный запрос вывести на странице - а вот на практике, не догоняю чего-то... Прошу прощения, за "новичковые" вопросы...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Программное определение сессии

Сообщение Sheer »

Все работает. Вот пример выборки из таблицы users

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

<?
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$sql = 'SELECT * FROM '. USERS_TABLE .' WHERE user_id = '.$user->data['user_id'].' LIMIT 1';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);

$template->assign_vars(array(
    'USER_NAME' => $row['username'],
    'USER_ID' => $row['user_id'],
    'USER_EMAIL' => $row['user_email'],
    ));

page_header('');

$template->set_filenames(array(
    'body' => 'page.html',
));

page_footer();
?>
Шаблон page.html

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

<!-- INCLUDE overall_header.html -->
{USER_ID}<br />{USER_NAME}<br />{USER_EMAIL}
<!-- INCLUDE overall_footer.html -->
Изучайте документацию http://www.phpbbguru.net/kb/modding/add ... stom-page/

Вернуться в «Поддержка phpBB 3.0.х»