Newsgroup: it.comp.www.php
Titolo: MIstero con i css

Non so neppure se e' OT qui.
SPerimentando un wiki ho scoperto per errore che la stessa pagina se
chiamata usando uno slash di troppo tra la fine del nome dello script ed i
parametri passati da url produce lo stesso codice in uscita, ma il browser
interpreta i due risultati in maniera diversa.
Almeno, li interpreta in maniera diversa il mio mozilla.
Questa e' la pagina con i due link dal comportamento strano:
http://www.awikia.org/it.php?title=@deep_link@
Senza slash mi legge il css.
http://www.awikia.org/it.iframe.php?title=@deep_link@
Con slash non me lo legge piu':
http://www.awikia.org/it.iframe.php/?title=@deep_link@
E le due pagine prodotte sono identiche internamente!!!
La cosa se fosse standard mi farebbe pure un sacco comodo...
-- 
http://www.awikia.org
 : @ WIKI @rchitecture
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 il browser interpreta i due risultati in maniera diversa.
Non e' che li interpreta in maniera diversa. Il browser non carica il
CSS perche' non lo trova.
<link REL="stylesheet" TYPE="text/css" href="awikia/css/w3c.css">
Nel promo caso viene cercato in 
http://www.awikia.org/awikia/css/w3c.css
Nel secondo caso viene cercato in 
http://www.awikia.org/it.iframe.php/awikia/css/w3c.css
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
http://www.awikia.org/it.iframe.php/awikia/css/w3c.css
Ottimo, come pensavo io... intendevo dire che la slash fa interpretare al
browser la pagina come se fosse una cartella con dentro un file, cosa che
non e'... il file e' caricato come file ma poi interpretato come cartella
contenente un file pergestire i posizionamenti!!!
E lo fa posizionare in un'ipotetica cartella che non esiste.
Se e' un comportamento da specifica mi puo' essere molto comodo sto fatto.
Se poi posso usare le .. nei percorsi relativi ancor di piu' perche' posso
fare puntare a due css distinti e sceglierli usando solo una slash o meno.
Grazie mille


 CSS perche' non lo trova.
Ok, ora e' chiaro, dipende tutto dal lato server che e' lasco e permette
una chiamata simile, se quella che dovrebbe essere una cartella e' un file
viene ignorato lo slash ed eseguito lo stesso il file e letti
correttamente i parametri passati.
Mentre lato client tutti i browser sono obbligati a comportarsi nel modo
suddetto, perche' non si puo' mica vietare alla gente di fare vere
cartelle chiamate pippo.php, il client vede solo un file che torna
indietro e che lui sa essere nella cartella pippo.php/ restituito con un
file di default, index.html, index.php o chissa' cos'altro.
Ma questa cosa dipende dal php o da apache? 
Ora ho provato a fare il contrario, a creare una cartella di nome
pippo.php riempiendola con il file e vedere se non trova il file o cosa.
No, se non trova il file e vede la cartella interpreta correttamente che
deve usare la cartella ed inserisce lo slash pure il client ed e' cosi'
che accade:
http://www.awikia.org/pippo.php
Ed interpreta correttamente pure la posizione per i css il client.
Quindi il server corregge le ipotesi che si era fatto il client sulla
posizione della cartella corrente.
La controprova con 
http://www.awikia.org/paperino.php
 e qui il file css
viene trovato perche' indicato con la ..
Quindi in un caso l'informazione della soppressione dello slash non e'
comunicata al client oppure il client non sa interpretarla, nell'altro
caso invece dell'aggiunta dello slash tale informazione viene passata in
risposta al client.
Ma tutto questo dipende dal server che in un caso non comunica se non
comunica, oppure dai client se il server comunicano ma loro non
interpretano.
Sarebbe interessante capire se questa asimmetria e' un comportamento
previsto dalle specifiche oppure se e' dato dalle varie implementazioni e
lato server e lato client.
Occorrerebbe provare con un telnet sulla porta 80 per vedere le risposte e
capire se nel primo caso il server fa qualcosa di diverso oppure no.
Magari lo faccio, mi incuriosisce sta cosa.


 
http://www.awikia.org/it.iframe.php/awikia/css/w3c.css
Ok, ho fatto la prova del nove con 
http://www.awikia.org/conto.gabbietta/occhetto.php/
in questo caso Occhetto cerca la Pollastrini nel conto gabbietta
mentre con
http://www.awikia.org/conto.gabbietta/occhetto.php
cerca la pollastrini fuori dal conto gabbietta!!!


 in risposta al client.
IMHO stai facendo delle prove inutili.
Usa un path assoluto per il CSS e risolvi tutti i tuoi problemi.
-- 
I am what I am, I do what I can


 Usa un path assoluto per il CSS e risolvi tutti i tuoi problemi.
Le prove sono servite per capire.
Inoltre non e' a caso che avevo usato il link relativo, era perche' il
sito e' previsto che possa essere scaricabile ed installabile altrove e
quindi io non saprei con precisione il path assoluto del css una volta
installato rispetto alla root del sito.
Certo, lo posso sapere usando le variabili interne e creando dinamicamente
un path assoluto.
UN'altra soluzione, ignorando l'esistenza di questo problema, poteva
essere  quella del path relativo.
Ma le prove mi sono servite per essere certo che il problema fosse da
imputare proprio a quello.
Potevo fidarmi delle tue parole, ma se posso preferisco anche appurare di
persona ed essere certo di aver capito.
Inoltre non sempre si creano documentazioni scaricabili che possano far
uso di php, allora sapere che in tal caso sarebbe buona norma organizzarsi
i css in una certa maniera sdoppiandoli puo' essere utile da sapere.
