Доброе время суток.
Столкнулся с такой проблемой. Нужно сделать проверку аутентификации пользователя в скрипте для 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 постоянно передаётся анонимный пользователь.
Как получить текущего юзера?
Комментарии
Рискну предположить что другого юзера нет.
Каким образом скрипт запускается?
Только не говорите что в файле index.php :), а то мы убъем котенка
На сайте залогинен супер админ.
скрипт запускается через браузер
http://example.com/custom_scripts/index.php
код в каком файле вставлен?
и не забывайте что если это не друпаловский модуль а сторонний скрипт, то с каких херов там будет global $user если вы его туда не загрузили.
Проще ваш скрипт сторонний сделать друпаловским модулем и проблема сразу будет решена.
это сторонний скрипт.
Тогда переформулирую вопрос.
Как залить в скрипт текущего пользователя залогиненого на сайте сайте?
заказчик требует скрипт
Решение проблемы в следующем:
В settings.php прописать имя своего сайта в параметре $base_url (по умолчанию он закомментирован)
<?php
$base_url = 'http://my_site.ru'
?>
Скорее всего Drupal генерит ID сессии по разному для "своих" скриптов и внешних, учитывая имя сайта, при указании $base_url ID сессий совпадают
Решение подсказал FoxyClub в этом посте http://www.drupal.ru/node/42240