Внимание!
Не все расширения для phpBB 3.2 совместимы с phpBB 3.3, главным образом из-за неверного синтаксиса в определениях сервисов (отсутствия обрамляющих кавычек - '...').
Перед обновлением необходимо убедиться в совместимости всех расширений.
Рекомендуется предварительно тестировать обновление на копии конференции (локально или на сервере).

Как получить информацию об авторизации пользователя

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Barak
phpBB 1.0.0
Сообщения: 4
Стаж: 7 лет 9 месяцев

Как получить информацию об авторизации пользователя

Сообщение Barak »

Пишу программу-дополнение к форуму (будет на сервере в той же директории, что и форум).

Мне нужно узнать, под каким именем пользователь зашёл на форуме.
(Я так понимаю, что имя записывается где-то в сессии - к какому параметру обращаться?
Права/статус пользователя я могу взять из базы сам.)

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11567
Стаж: 13 лет 4 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2611 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Sheer »

Писатель, вы бы проанализировали любой php-файл из корневой папки, ну хотя бы index.php - все бы стало ясно.
Прежде чем что-то писать, следовало бы изучить документацию, структуру движка, структуру базы данных и таблиц БД. Практически вся необходимая информация есть на phpbbguru. Надо только почитать.
http://ftp.phpbb-fr.com/public/cdd/phpb ... 9/nav.html

Полезно помнить, что мы не библиотечный фонд, не система поиска по документации и т. д. САМИ изучайте.

PS. В phpBB3 есть волшебный объект $user - там про несчастного юзера него все, вплоть до хеша пароля.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Стаж: 8 лет 2 месяца
Благодарил (а): 62 раза

Re: Как получить информацию об авторизации пользователя

Сообщение kupidon »

Помогите пожалуйста правильно поставить код php

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

..........
$US_USERNAME = $user->data['user_id'];
echo $US_USERNAME;
..........
почему не выводит на экран ид пользователя? номер пользователя мне нужен будет в sql запросе в дальнейшем.

Заранее спасибо за подсказку

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 10113
Стаж: 8 лет 10 месяцев
Благодарил (а): 178 раз
Поблагодарили: 2815 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Татьяна5 »

Попробую догадаться об остальном коде...

Где эти строки:
В функции? Переменная $user там объявлена глобальной?
В основном коде страницы? Файл common.php там подключён ли и где?

Файл шаблона в php-файле подключён?

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Стаж: 10 лет 3 месяца
Благодарил (а): 67 раз
Поблагодарили: 787 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Anvar »

kupidon,

Ссылка выше была предоставлена http://www.phpbbguru.net/kb/modding/add ... stom-page/

Если подключить шаблон, то ваши варианты с echo не пройдут.

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

<?php
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();

$US_USERNAME = $user->data['user_id'];
echo $US_USERNAME;

?>
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!

поиск моих эксклюзивных решений

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 10113
Стаж: 8 лет 10 месяцев
Благодарил (а): 178 раз
Поблагодарили: 2815 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Татьяна5 »

Anvar писал(а):варианты с echo не пройдут
Со сломанной вёрсткой и ошибками от дебага, но проходят

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Стаж: 10 лет 3 месяца
Благодарил (а): 67 раз
Поблагодарили: 787 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Anvar »

Всё равно его использование даст отрицательный результат)))

Но можно и ошибок от дебага, сломанной вёрстки избежать оставив пустой шаблон:-D

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Стаж: 8 лет 2 месяца
Благодарил (а): 62 раза

Re: Как получить информацию об авторизации пользователя

Сообщение kupidon »

Спасибо вам за внимание. Я echo использовал чтобы "пощупать" переменную, и не более.
С шаблонами понятно, но я с этим думаю справлюсь ( а может нет)
Помимо всего прочего, код действительно было внутри функции...
Вообщем слепил...вывел через echo и убедился что значение верное, теперь проблема в другом...

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

.......
$USUS = $user->data['user_id'];
$USUS =$USUS;
echo $USUS;
......
На экран выводится мой ИД = 55

ниже в коде, в функции есть запрос, вот он выдает ошибку:

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

$sql = "SELECT ........
FROM.........
WHERE  id_username = $USUS";
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...
А вот если поставить вот так:

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

$sql = "SELECT ........
FROM.........
WHERE  id_username = 55";
то все отрабатывает


Думаю что дело в несоответствии типов или еще чего, но вот решения не знаю...помогите преобразовать значение $user к нужному виду для запроса. :|

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 10113
Стаж: 8 лет 10 месяцев
Благодарил (а): 178 раз
Поблагодарили: 2815 раз

Re: Как получить информацию об авторизации пользователя

Сообщение Татьяна5 »

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

.......
$usus = $user->data['user_id'];
echo $usus;
......

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

$sql = "SELECT ........
FROM.........
WHERE  id_username = " . (int) $usus;
Но, скорей всего, дело не в этом. В чём - так сказать невозможно, проще вывести переменную $sql на экран и посмотреть что не так (не выполняя запрос)

И Руководство по написанию кода - названия переменных пишутся в нижнем регистре

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Стаж: 8 лет 2 месяца
Благодарил (а): 62 раза

Re: Как получить информацию об авторизации пользователя

Сообщение kupidon »

Сейчас заметил, что дело возможно не в запросе sql...
Если переменная $usus стоит вне функции то на экран выводится.

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

$usus = $user->data['user_id'];
echo $usus;
exit();
function get_new_zakaz24() {
$timeall=time()-86400;
$usus = $user->data['user_id'];
echo $usus;
$sql = "SELEC.....
Если стоит внутри функции, то пусто..

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

....
function get_new_zakaz24() {
$timeall=time()-86400;
$usus = $user->data['user_id'];
echo $usus;
$sql = "SELECT...
Что это может быть?

Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2190
Стаж: 12 лет 6 месяцев
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 340 раз

Re: Как получить информацию об авторизации пользователя

Сообщение nissin »

global $user;
Всё повторяется. nurlan.info

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Стаж: 8 лет 2 месяца
Благодарил (а): 62 раза

Re: Как получить информацию об авторизации пользователя

Сообщение kupidon »

Всем огромное спасибо. все сделал!
Вставил

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

global $user;
прямо внутрь функции. Не знаю так надо или нет, но работает!!!

Вернуться в «Для авторов (phpBB 3.0.x)»