Domanda

Va bene, così lo script PHP esiste su serverA. ServerA ha php safe-mode ON e OFF WebDAV. Non posso cambiare uno di questi fattori. Voglio uno script su serverA per ottenere login / password dell'utente per un altro server, che chiameremo serverB. ServerB ha WebDAV ON.

L'obiettivo finale è che l'utente andrà allo script sul ServerA, messo in loro credenziali per ServerB, e poi lo script creerà un file iCal e posizionarlo sul ServerB, permettendo all'utente di poi iscriversi al file iCal utilizzando Outlook / GoogleCalendar, ecc (che richiede il file di essere su un server WebDAV).

Così, ho provato

fopen(servername/filename, r) 

ed è stato in grado di leggere i file sul server remoto. Ma quando ho provato

fopen(servername/filename, w)

ottengo un errore che l'involucro HTTP non supporta la scrittura, solo la lettura.

Per farla breve, c'è un modo per connettersi a questo server e l'autenticazione, scrivere un file, quindi chiudere la connessione senza utilizzare alcun delle librerie WebDAV già esistenti per PHP e senza essere colpiti con un errore di autorizzazioni di sicurezza-mode ?

Grazie!

È stato utile?

Soluzione

Il problema è che l'involucro protocollo HTTP per PHP non fa PUT. Si dovrebbe cercare di scrivere il proprio, sia con fsockopen, o, preferibilmente, qualcosa di simile a ricciolo.

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

Questo non ha nulla a che fare con la modalità sicura.

Altri suggerimenti

Il problema qui è che Safe-mode è progettato per limitare voi in modo non è possibile eseguire le cose fuori della tua zona "sicura".

Che cosa si potrebbe provare (se è possibile) è quello di modificare il safe_mode_exec_dir in php.ini, allora si può iniziare a programmi esterni che potrebbero fare la scrittura del file per voi (se risiedono in questa directory safe-mode

A proposito di autenticazione, non sono sicuro, forse qualcuno può rispondere in modo più dettagliato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top