[РЕШЕНО] $user в script

Главные вкладки

Аватар пользователя bedstvie bedstvie 1 июля 2011 в 16:33

Доброе время суток.
Столкнулся с такой проблемой. Нужно сделать проверку аутентификации пользователя в скрипте для Drupal6.
Сделал так

<?php
chdir
('..');
include_once 
'./includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

global 

$user;
if(
$user->uid == 1) {
  
//...
} else {
  print 
t('Access denied');
}
?>

Но в переменную $user постоянно передаётся анонимный пользователь.
Как получить текущего юзера?

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 1 июля 2011 в 16:35

"luckytp" wrote:

Но в переменную $user постоянно передаётся анонимный пользователь.
Как получить текущего юзера?

Рискну предположить что другого юзера нет.
Каким образом скрипт запускается?

Аватар пользователя glu2006 glu2006 1 июля 2011 в 16:54

код в каком файле вставлен?
и не забывайте что если это не друпаловский модуль а сторонний скрипт, то с каких херов там будет global $user если вы его туда не загрузили.

Проще ваш скрипт сторонний сделать друпаловским модулем и проблема сразу будет решена.

Аватар пользователя bedstvie bedstvie 1 июля 2011 в 16:55

это сторонний скрипт.
Тогда переформулирую вопрос.
Как залить в скрипт текущего пользователя залогиненого на сайте сайте?

Аватар пользователя bedstvie bedstvie 1 июля 2011 в 16:56

"glu2006" wrote:
Проще ваш скрипт сторонний сделать друпаловским модулем и проблема сразу будет решена.

заказчик требует скрипт

Аватар пользователя bedstvie bedstvie 1 июля 2011 в 17:42

Решение проблемы в следующем:
В settings.php прописать имя своего сайта в параметре $base_url (по умолчанию он закомментирован)

<?php
$base_url 
'http://my_site.ru'
?>

Скорее всего Drupal генерит ID сессии по разному для "своих" скриптов и внешних, учитывая имя сайта, при указании $base_url ID сессий совпадают

Решение подсказал FoxyClub в этом посте http://www.drupal.ru/node/42240