Вопрос

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

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

Итак, я попробовал

fopen(servername/filename, r) 

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

fopen(servername/filename, w)

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

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

Спасибо!

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top