Newsgroup: it.comp.www.php
Titolo: Sviluppare applicazioni in PHP portabili

Salve,
mi sto imbattendo in una serie di piccoli problemi nel portare un sito
sviluppato in PHP in ambiente Linux-Apache-MySql-Php su Windows-Php-MySql
(Aruba, per intenderci). Sul mio computer il sito funziona alla
perfezione, visibile all'esterno con DNS dinamico, e perfettamente
utilizzabile, non apena ho fatto la prova a portarlo su server di Aruba,
ha iniziato a dare un sacco di problemi perchè non riusciva a trovare i
percorsi dei file. Ovviamente le notazioni Linux e WIndows per i percorsi
dei file sono differenti, ma che notazione usare, o quale tecnica usare
per risolvere questi problemi? Ad esempio, se ho una immagine in
/immagini/Redazione/macchina-scrivere.jpg, scrivendo
echo '< img src="/immagini/Redazione/macchina-scrivere.jpg">';
in Linux l'immagine viene caricata correttamente, in Windows l'immagine
non viene caricata.
Ma se scrivo
$url=$_SERVER['DOCUMENT_ROOT']."/immagini/Redazione/macchina-scrivere.jpg"
in Linux l'immagine viene caricata, in Windows $url equivale a
"d:\qualcosa\/immagini/Redazione/macchina-scrivere.jpg"
e l'immagine non viene caricata, ma viene  visualizzato un messaggio che
mi avverte che il protocollo [d:] non è supportato
Altri problemi con il redirezionamento delle pagine. Se in Linux scrivo
header("Location: /index.php")
riesco a redirezionare la pagina, in Windows anche se viene visualizzata
la pagina /index.php l'url della casella degli indirizzi rimane sempre
quella di provenienza. Ho letto che bisogna specificare il percorso
completo, indicando addirittura il protocollo http, ovvero, se voglio
redirigere alla pagina index.php del sito, dovrei scrivere:
header("Location: 
http://www.miosito.com/index.php
")
Insomma, quale tecnica usare per scrivere applicazioni php portabili tra i
due ambienti con il minimo numero di modifiche.
Francesco
-- 
There are two kinds of researchers:
those that have implemented something and those that have not.
The latter will tell you that there are 142 ways of doing things
and that there isn't consensus on which is best.
The former will simply tell you that 141 of them don't work.


Non ho mai avuto di questi problemi (e ho avuto un sito su aruba)... prova a 
levare lo slash iniziale, ovvero:
echo '< img src="immagini/Redazione/macchina-scrivere.jpg">';
se ti è possibile ovviamente (questo è un path relativo alla directory 
corrente)
ciao,
Luca(riello) 

 (Aruba, per intenderci). Sul mio computer il sito funziona alla
Cambia l'hosting da windows a linux.
Ciao
Marco 



Il sito non e' mio, e' di un mio amico.


 corrente)
echo '< img src="/immagini/Redazione/macchina-scrivere.jpg">';
la cartella immagini è relativa alla radice del sito. 


 tra i due ambienti con il minimo numero di modifiche.
IMHO stai facendo degli errori che non hanno nulla a che fare con la
portabilita' degli applicativi ma sono errori logici/generici causato
dalla ignoranza del funzionamento basilare di un sistema basto
sull'HTTP.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

> Il sito non e' mio, e' di un mio amico.
E digli di cambiare hosting.
Se non ci sono controindicazioni, passa a linux.
Tanto costa uguale.
Ciao
Marco 

 dalla ignoranza del funzionamento basilare di un sistema basto sull'HTTP.
Diciamo che mi sono basato sugli esempi letti e visti. Non ho mai
approfondito la mia conoscenza sul protocollo HTTP.


 Se non ci sono controindicazioni, passa a linux. Tanto costa uguale.
Beh, l'ha registrato solo tre giorni fa ...


 due ambienti con il minimo numero di modifiche.
Le tecniche ci sono, ma i tuoi problemi sono altri secondo me.
Tac
-- 
La netiquette prevede sign di al massimo quattro righe.
Purtroppo la mia sign in quattro righe non ci stà.

 dirname(__FILE__).
Occhio che su Windows realpath da qualche problema. (problemi verificati  
su software di altri, non ci ho smanettato a fondo comunque).
I problemi sono descritti nei commenti degli utenti sulla pagina indicata  
del sito php.


 Aruba e poi ho verificato la posizione di ogni file.
L'avrai copiata nel posto sbagliato.
Prova a dare un occhio alle FAQ di Aruba.


> Beh, l'ha registrato solo tre giorni fa ...
Forse è ancora in tempo per evitare di pagare il doppio hosting.
Ciao
Marco 

 Prova a dare un occhio alle FAQ di Aruba.
Non credo, perchè poi la cartella immagini non l'ho piu' toccata.


 Konqueror
La mia NON era una domanda, ma una affermazione.


 La mia NON era una domanda, ma una affermazione.
Se era un problema del client, perchè sul mio server Apache funzionava
correttamente ed invece su Aruba non funzionava allo stesso modo?


 stesso modo?
Sei davvero sicuro che la pagina fosse esattamente la stessa?
Sei sicuro di averlo verificato con lo stesso client?
Sei sicuro di averlo verificato con la stessa versione di server?


 Non credo, perchè poi la cartella immagini non l'ho piu' toccata.
Beh, io il mio consiglio te l'ho dato :-).
