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

Прислано: Студия Razgonka.ru

вт, 26/09/2006 - 18:51

Другие статьи по теме:

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

<?php
global $user;
  
$user_id $user->uid;
if (!isset(
$user_id)) {
    
$user_id = -1;
// if
  
$user_name $user->name;
if ((
>= $user_id) || !isset($user_name)) {
    
$user_name '';
// if
  
$user_email $user->mail;
if ( (
>= $user_id) || (!isset($user_email)) ) {
    
$user_email '';
// if
?>

 
У Гостя $user_id будет равен нулю, у суперадминистратора - единице, у остальных зарегистрированных пользователей $user_id будет больше 1.
Если вдруг $user_id оказался равным -1, то проверьте, чтобы переменная $user была объявлена глобальной.

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

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано rariteth в вт, 26/09/2006 - 22:52.

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

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

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


Опубликовано Студия Razgonka.ru в сб, 18/11/2006 - 18: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 в сб, 18/11/2006 - 21:10.

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

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


Опубликовано Dmitry Shvalyov в пт, 24/11/2006 - 14:12.

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


Опубликовано coyotle в пт, 24/11/2006 - 14:51.

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


Опубликовано катя (гостевой логин) в вт, 08/01/2008 - 17:34.

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


Опубликовано orb в пт, 27/06/2008 - 08:36.

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


Опубликовано orb в пт, 27/06/2008 - 08:37.

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


Опубликовано olk в пт, 27/06/2008 - 09:10.

Напимер так
<?php$u=user_load($node->uid);?>


Опубликовано orb в сб, 28/06/2008 - 08:15.

спасибо
помогло


Опубликовано Tinnka в пн, 27/12/2010 - 20:25.

спасибо, пригодилось


Опубликовано lastspb в пт, 27/01/2012 - 18:06.

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

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

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


Новое на сайте

Ссылки партнёров