Pergunta

Ok, então o script PHP existe no ServerA. O servidor possui o modo de segurança PHP e o webdav off. Não posso mudar nenhum desses fatores. Quero um script no ServerA para obter o login/senha do usuário para outro servidor, que chamaremos o ServerB. O Serverb possui webdav ativado.

O objetivo final é que o usuário vá para o script no ServerA, coloque suas credenciais para o Serverb e, em seguida, o script criará um arquivo iCal e o colocará no Serverb, permitindo que o usuário assine o arquivo iCal usando o Outlook/ GoogleCalendar, etc (que exige que o arquivo esteja em um servidor webdav).

Então eu tentei

fopen(servername/filename, r) 

e conseguiu ler arquivos no servidor remoto. Mas quando eu tentei

fopen(servername/filename, w)

Recebo um erro que o wrapper HTTP não suporta escrever, apenas lendo.

Para encurtar a história, existe uma maneira de se conectar a este servidor e autenticar, escreva um arquivo e feche a conexão sem usar nenhuma das bibliotecas Webdav já existentes para PHP e sem ser atingido com um erro de permissões de modo seguro?

Obrigado!

Foi útil?

Solução

O problema é que o invólucro do protocolo HTTP para PHP não é colocado. Você deve tentar escrever o seu próprio, com o FSockOpen ou, de preferência, algo como Curl.

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

Isso não tem nada a ver com o modo de segurança.

Outras dicas

O problema aqui é que o modo de segurança foi projetado para restringi-lo, para que você não possa executar coisas fora da sua zona "segura".

O que você poderia tentar (se puder) é modificar o safe_mode_exec_dir Em Php.ini, você pode iniciar programas externos que podem escrever o arquivo para você (se eles residem neste diretório de modo seguro

Sobre a autenticação, não tenho certeza, talvez alguém possa responder isso com mais detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top