PHP-доступ к User id, name, email

Аватар пользователя Макс К. Макс К. 26 сентября 2006 в 22:51

Часто бывает нужно получить из PHP-вставки доступ к User Id, к его имени пользователя и E-mail.
Следующий кусок PHP-кода показывает, как это можно сделать:

global $user;

$user_id = $user->uid;
if (!isset($user_id)) {
$user_id = -1;
} // if

$user_name = $user->name;
if ((0 >= $user_id) || !isset($user_name)) {
$user_name = '';
} // if

$user_email = $user->mail;
if ( (0 >= $user_id) || (!isset($user_email)) ) {
$user_email = '';
} // if
?>
 
У Гостя $user_id будет равен нулю, у суперадминистратора - единице, у остальных зарегистрированных пользователей $user_id будет больше 1.
Если вдруг $user_id оказался равным -1, то проверьте, чтобы переменная $user была объявлена глобальной.

 
Подбор названий сайтов и программ
Макс Кириленко
Razgonka.ru - Подбор названий сайтов и программ

Комментарии

Аватар пользователя rariteth rariteth 27 сентября 2006 в 2:52

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

global $user;
if ($user_id >=1 ) {
    echo("вот это видно только модератору");
}

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

Аватар пользователя Макс К. Макс К. 18 ноября 2006 в 21:36

rariteth пишет: "а что ещё интересного есть из глобальных переменных, которые часто приходится использовать профессионалам (и не только),"

Кроме:
$user->uid
$user->mail
$user->name

есть еще переменные:
$user->$setting
$user->{$field->name}
$user->block[$block->module][$block->delta]
$user->created
$user->language
$user->picture
$user->realname
$user->roles = array()
$user->timezone
$user->access
$user->login
...

Примеры использования можно найти в папке modules, если задать поиск нужной переменной (например, $user->timezone) среди файлов с маской *.module

Нужно иметь ввиду, что некоторые из этих переменных массивы, например $user->roles.

И еще раз напомню, не забывайте перед обращением к переменной указывать "global $user;".

 
Макс КириленкоRazgonka.ru - Подбор названий сайтов и программ

Дневник

Аватар пользователя axel axel 19 ноября 2006 в 0:10

global $user; print_r($user) - распечатает полный список свойств объекта $user Smile

--
Axel,
администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!

Аватар пользователя Dmitry Shvalyov Dmitry Shvalyov 24 ноября 2006 в 17:12

Всё замечательно! А есть возможность вывести информацию по другим зарегистрированным пользователям? Я хочу написать блок, где выводится информация по зарегистрированным пользователям, включая из модуля расширенных профилей. Это реально?

Аватар пользователя coyotle coyotle 24 ноября 2006 в 17:51

Есть ф-я user_load($array) - возвращает объект со всеми данными пользователя по id или почтовому адресу.
А вообще всю инфу можно получить из базы с помощью php...

Аватар пользователя катя катя (не проверено) 8 января 2008 в 20:34

У меня не идет обновление антивируса- ранды.Мне пишут что у меня ошибка в имени и пароли.А пароль и имя я не знаю .Что мне делать?Помогите!

Аватар пользователя orb orb 27 июня 2008 в 12:36

это возврат данных залогиненого юзера
а как получить данные автора ноды?

Аватар пользователя orb orb 27 июня 2008 в 12:37

это возврат данных залогиненого юзера
а как получить данные автора ноды?

Аватар пользователя lastspb lastspb 27 января 2012 в 22:06

я что то не так сделал?
создал блок
в содержание написал ваш php-код
формат текста - PHP Code

Результат - пусто и блока не видно (видимость всем пользователям стоит)

Мне нужно чтоб в блоке выводилось только емайл пользователя