使用PHP进行WebDav连接/身份验证

时间:2009-04-23 01:35:13

标签: php http webdav remote-access icalendar

好的,所以PHP脚本存在于serverA上。 ServerA具有php安全模式ON和WebDAV OFF。我不能改变这些因素中的任何一个。我想在serverA上创建一个脚本来获取另一台服务器的用户登录名/密码,我们称之为serverB。 ServerB有WebDAV ON。

最终目标是用户将转到ServerA上的脚本,输入ServerB的凭据,然后脚本将创建一个iCal文件并将其放在ServerB上,然后允许用户订阅iCal文件使用Outlook / GoogleCalendar等(需要该文件位于WebDAV服务器上)。

所以,我试过

fopen(servername/filename, r) 

并且能够读取远程服务器上的文件。但是当我尝试

fopen(servername/filename, w)

我收到错误,HTTP包装器不支持写入,只读取。

长话短说,是否有办法连接到此服务器并进行身份验证,编写文件,然后使用任何已存在的PHP WebDAV库关闭连接,而不会遇到安全模式权限错误?

谢谢!

2 个答案:

答案 0 :(得分:1)

问题是PHP的HTTP协议包装器不执行PUT。 你应该尝试使用fsockopen编写自己的文件,或者最好用curl编写。

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

这与安全模式无关。

答案 1 :(得分:0)

这里的问题是安全模式旨在限制您,因此您无法执行“安全”区域之外的事情。

您可以尝试(如果可以)尝试修改php.ini中的safe_mode_exec_dir,然后您可以启动可以为您编写文件的外部程序(如果它们位于此安全位置 - 模式目录

关于身份验证,我不确定,也许有人可以更详细地回答这个问题。