Newsgroup: it.comp.www.html
Titolo: &,/&,'&', Ma esiste un meta carattere

Salve forse questa domanda è già stata fatta ma non l' ho trovata fra le
faq.
Esiste un meta carattere come per sql che non faccia valutare al server &.
IO vorrei potere passare prova.cgi?arg1=pippo&1111
e lui deve stampare pippo&1111 e non pippo.
Ho provato con 'pippo&1111' , pippo\&1111 ma niente.
Grazie anticipate.

 Ho provato con 'pippo&1111' , pippo\&1111 ma niente.
pippo&amp;1111
--
Laz __________________________________________________
"Bless the night, before it has a chance to pass
Seize the night, you do what it takes to make it last"

 pippo&amp;1111
"Fortunatamente" non funziona: usare & in un URL e` errato (la pagina non
si valida!), quindi va sempre usato &amp;, che poi viene trattato come &
dagli script server-side (o almeno da PHP...). Forse con pippo%261111...
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________

 dagli script server-side (o almeno da PHP...). Forse con pippo%261111...
Ehm... ma se &amp; viene trattato come & (e la pagina valida), perche' dici
che non funziona?


 valida), perche' dici che non funziona?
Confondi il modo in cui va scritto il link nel codice HTML con il 
modo in cui deve essere trattato quando richiedi l'URL al server.
L'esempio originario non fa riferimento al contenuto di una 
pagina HTML ma a un URL. 
& va scritto come entita' _solo_ quando si trova all'interno di 
una pagina HTML (al di fuori dell'HTML le entita' non hanno molto 
senso):
se scrivi
<a href="script.cgi?pippo&1111">
la pagina non passera' la validazione. Se si clicca sul link 
verra' caricato script.cgi a cui saranno passate 2 variabili: 
"pippo" e "1111".
se scrivi
<a href="script.cgi?pippo&amp;1111">
la pagina passa la validazione ma a script.cgi vengono passate 
sempre due variabili: "pippo" e "amp;1111" (ho qualche dubbio 
dovuto alla presenza di ";" ma la logica e' questa)
se invece scrivi
<a href="script.cgi?pippo%261111">
(o lo fai scrivere da un programma, eg. con urlencode() in PHP) 
allora la pagina passa la validazione e a script.cgi arriva solo 
una variabile: pippo%261111, che poi dovra' essere decodificata 
correttamente. 
In tutto questo c'e' forse un po' di confusione perche' abbiamo 
sempre fatto riferimento ai nomi delle variabili e non ai valori 
che contengono. Negli esempi sopra a script.cgi arrivano sempre 
variabili vuote. Tra l'altro ho qualche dubbio sulla correttezza 
di una variabile con "&" nel nome, ma questo dipende dal 
linguaggio usato. In genere e' il contenuto della variabile che 
va "urlencodato".
Se dobbiamo passare a script.cgi due variabili: pippo1 e pippo2 
che contengono rispettivamente: "&" e "~" il link all'interno 
della pagina sara' scritto cosi':
<a href="script.cgi?pippo1=%26&amp;pippo2=%7E">
Pero' al momento di richiedere la pagina il browser convertira' 
&amp; in &:
script.cgi?pippo1=%26&pippo2=%7E

 dovuto alla presenza di ";" ma la logica e' questa)
Sicuro? Perche' se io clicco su un link fatto cosi' e lo faccio aprire in
un'altra pagina (per vedere l'URL) mi compare "script.cgi?pippo&1111", ho
provato diverse volte. Oppure mi stai dicendo che compare & ma passa come
valore &amp;? (Ma mi pare strano, nei casi che ho provato funzionava sempre
tutto)


 Sicuro?
no, infatti mi accorgo adesso che ho sbagliato e ho detto una 
stupidaggine: "&amp;" viene tradotto dal browser in "&" quando 
clicchi sul link
Comunque "&amp;" non serve per passare il carattere "&" come 
valore di una variabile in una query string.