Соединение/аутентификация WebDav с PHP

Итак, PHP-скрипт существует на serverA. На сервере A включен безопасный режим php и выключен WebDAV. Я не могу изменить ни один из этих факторов. Я хочу, чтобы скрипт на сервере А получал логин/пароль пользователя для другого сервера, который мы назовем serverB. На сервере B включен WebDAV.

Конечная цель состоит в том, что пользователь перейдет к сценарию на сервере ServerA, введет свои учетные данные для сервера B, а затем сценарий создаст файл iCal и поместит его на сервер B, что позволит пользователю затем подписаться на файл iCal с помощью Outlook/ GoogleCalendar и т. д. (для этого требуется, чтобы файл находился на сервере WebDAV).

Итак, я попытался

fopen(servername/filename, r) 

и смог прочитать файлы на удаленном сервере. Но когда я попытался

fopen(servername/filename, w)

Я получаю сообщение об ошибке, что HTTP-оболочка не поддерживает запись, только чтение.

Короче говоря, есть ли способ подключиться к этому серверу и пройти аутентификацию, записать файл, а затем закрыть соединение БЕЗ использования какой-либо из уже существующих библиотек WebDAV для PHP и без получения ошибки разрешений безопасного режима?

Спасибо!


person Anthony    schedule 23.04.2009    source источник


Ответы (2)


Проблема в том, что оболочка протокола HTTP для PHP не выполняет PUT. Вы должны попытаться написать свой собственный либо с помощью fsockopen, либо, что предпочтительнее, с помощью curl.

http://ca3.php.net/manual/en/wrappers.http.php

Это не имеет ничего общего с безопасным режимом.

person Evert    schedule 23.04.2009

Проблема здесь в том, что безопасный режим предназначен для того, чтобы ограничить вас, чтобы вы не могли выполнять действия за пределами вашей «безопасной» зоны.

Что вы можете попробовать (если можете), так это изменить safe_mode_exec_dir в php.ini, то вы можете запустить внешние программы, которые могут сделать запись файла для вас (если они находятся в этом каталоге безопасного режима

Насчет аутентификации я не уверен, возможно, кто-то ответит более подробно.

person Ólafur Waage    schedule 23.04.2009