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

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

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

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

Сообщение Barak » 14.09.2012 10:06

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

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

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11489
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 14.09.2012 14:18

Писатель, вы бы проанализировали любой 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
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

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

Сообщение kupidon » 16.07.2014 20:44

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

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

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

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

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9759
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2718 раз

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

Сообщение Татьяна5 » 16.07.2014 20:51

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

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

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

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

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

Сообщение Anvar » 16.07.2014 21:02

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
Поддержка
Поддержка
Сообщения: 9759
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2718 раз

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

Сообщение Татьяна5 » 16.07.2014 21:09

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

Аватара пользователя
Anvar
Former team member
Сообщения: 1962
Зарегистрирован: 26.03.2010 9:09
Благодарил (а): 67 раз
Поблагодарили: 784 раза

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

Сообщение Anvar » 16.07.2014 21:34

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

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

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

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

Сообщение kupidon » 17.07.2014 12:17

Спасибо вам за внимание. Я 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
Поддержка
Поддержка
Сообщения: 9759
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 175 раз
Поблагодарили: 2718 раз

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

Сообщение Татьяна5 » 17.07.2014 12:41

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

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

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

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

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

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

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

Сообщение kupidon » 17.07.2014 13:09

Сейчас заметил, что дело возможно не в запросе 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
Сообщения: 2181
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз

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

Сообщение nissin » 17.07.2014 13:36

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

Аватара пользователя
kupidon
phpBB 1.4.4
Сообщения: 120
Зарегистрирован: 04.04.2012 20:02
Благодарил (а): 62 раза

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

Сообщение kupidon » 17.07.2014 14:52

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

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

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

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