Проверка авторизации из внешнего скрипта

Прислано: Yevgen

сб, 21/04/2007 - 15:41

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

У меня есть внешний скрипт, который работает сам по себе, без участия Друпала. Но я хочу сделать так, чтобы все команды скрипта работали только, если человек залогинен к Друпалу. Если гость, то скрипт дожен выдавать сообщение "Нет доступа". Возможно ли это реализовать? Пробовал для теста в начале скрипта писать:

@include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 
global $user;
print $user->uid;

Однако после запуска скрипта мне выдается ошибка:

Fatal error: Call to undefined function: drupal_bootstrap() in z:\home\mob2\www\price\upload_price.php on line 4

Подскажите советом.

Комментарии


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

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано vadbars@drupal.org в сб, 21/04/2007 - 16:09.

Можно создать материал, например, "страница" (page или story), в который вставить ваш скрипт (не забудьте только поставить формат ввода PHP). В скрипте поставить проверку, является ли пользователь зарегистрированным пользователем.


Опубликовано Yevgen в сб, 21/04/2007 - 18:13.

Дело в том, что мой внешний скорипт состоит из формы с кнопокй "обзор" для указания файла на винте, и непосредственно программы, которая обрабатывает эту форму. Я так понимаю, в этой ситуации способ с созданием ноды не подойдет.


Опубликовано vadbars@drupal.org в сб, 21/04/2007 - 18:28.

Ваш скрипт на PHP? Насколько я понимаю, Drupal лишь создает интерфейсное оформление для PHP-скриптов в теле материала.


Опубликовано Yevgen в сб, 21/04/2007 - 19:19.

Да, скрипт на PHP. Я пробовал так. Создаю ноду, вставляю туда форму, сохраняю. Создаю еще одну ноду, вставляю туда скрипт-обработчик формы на PHP, сохраняю. Открываю ноду с формой, вбиваю туда данные, нажимаю кнопку "Submit". Нода с PHP скриптом окрывается, скрипт начинает работу, однако сыпятся ошибки потому что из формы данные в ноду со скриптом не передались.

Сейчас сделал немного по дуратски, однако по другому пока не выходит. Формы я вставил в друпаловские ноды, а скрипты оставил в отдельных php-файлах. Доступ к нодам с формами мне удалось настроить. Формы видят только зарегистрированные пользователи. А вот внешние php-файлы со скриптами-обработчиками форм вроде как беззащитные. Если никак по другому не получится сделать, то попробую запаролить директорию со скриптами. Не знаю, правда, сохранится ли в таком случае работоспособность моих скриптов.


Опубликовано KCEOH в сб, 21/04/2007 - 19:46.

> однако сыпятся ошибки потому что из формы данные в ноду со скриптом не передались.

в свое время помогло вместо глобальных переменных - использовать класс.

Кстати, ща создал файл test.php в корневой директории друпала. В нем то, что написано первом сообщении + error_reporting(7);

Зашел - пишет "1" (админ). Зашел на сайт друпала, разлогинился, потом на тест - пишет 0 (гость).

Руки? ;) На чистом друпале попробовать советую.


Опубликовано Shedko в сб, 21/04/2007 - 20:33.

прошу прощения, не то и не туда набрал =)


Опубликовано Yevgen в вс, 22/04/2007 - 07:47.

На чистом уже нет возможности. Слишком много сделано на "грязном". ;) А делать заново нет времени.
Сделал так, как писал выше. Запаролил директорию со скриптами. Теперь при первом обращении к внешнему скрипту, юзеру нужно будет ввести пароль, но в принципе, может это даже и хорошо. Типа двойная защита. Скрипты там админские и светить их нельзя.


Опубликовано mydmitry в сб, 21/01/2012 - 06:55.

Спасибо Yevgen. Короткое, простое и эффективное решение.


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

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