Newsgroup: it.comp.lang.javascript
Titolo: correttezza xhtml vs javascript

<a href ="scarica.php?adm=qualcosa&amp;win=9" .....
in js
scarica.php?adm=qualcosa;win=9
come mai sta cosa ?
ma il js si rifa' alle specifiche html 4 o si rifa alla pagina con cui e
scritto il documento ?


???

 scarica.php?adm=qualcosa;win=9
immagino volessi dire:  scarica.php?adm=qualcosa&win=9
è vero che nella validazione di un xhtml1.0 strict (non ho provato nel
dettaglio gli altri), venga contestato l'uso dell' "&" nel passaggio
parametri. Non ho mai capito se sia una 'leggerezza' dei motori di
validazione o cosa, ad ogni modo passare un &amp; NON viene preso come
se fosse un "&", il che è anche una bella cosa perchè se ho un dato
tipo company="pippo & pluto" ho un bel problema!
Io mi son fatto una funzione in js che sostituisce i caratteri col
loro codice ascii (#xx) però effettivamente mi piacerebbe sapere che
cos'è che il validatore html ritenga giusto inserire al posto dell "&"
per separare i vari dati passati in POST o GET

tutti i caratteri strambi vengono passati cmq ed in genere
correttamente, è il motore che sta sotto ad occuparsene, programmando
in php non ho mai avuto problemi (e non so se ne occupa il php con
alcuni flag di sistema o direttamente il webserver, penso la prima)
il problema sussiste nel momento che genero qesrystring particolari
con javascript, cosa che mi è capitata nell'ultimo progetto al quale
ho lavorato dove utilizzavo ajax per aggiungere "corpi" a formulari
tipo compilazione di fatture/bolle etc
se nel campo della descrizione l'utente mi inseriva apici, & o anche
il + veniva fuori un macello. Ho risolto filtrando & e + in fase di
generazione della querystring per la chiamata ajax (con la notazione
%xx) e filtrando gli apici in un secondo tempo tramite php nel momento
di servire la chiamata.
Nulla di problematico, basta saperlo.
Ma la curiosità di Gufo Rosso che ha lanciato questo thread (se l'ho
interpretata bene) e anche la mia è: "perchè se in un file mi capita
di avere una chiamata del tipo <a href="index.php?
val=4&id=3&user=12" ...> un qualsiasi validatore XHTML mi dice che
dovrei usare &amp; invece che & ?
Notare che se invio "index.php?val=4&id=3&user=12" il risultato sono 3
variabili post (val=4  id=3 e user=12) mentre se faccio il post di
"index.php?val=4&amp;id=3&amp;user=12" il risultato è una sola
variabile val che contiene il valore "4&id=3&user=12"

 variabile val che contiene il valore "4&id=3&user=12"
A parte che non e' un POST ma un GET... :-)
In genere ottieni sempre 3 variabili GET, in PHP $_GET['val'], $_GET['id']
e $_GET['user']. Anche perche', sempre in genere, il browser interpreta
"index.php?val=4&amp;id=3&amp;user=12" come "index.php?val=4&id=3&user=12"
per inviare la richiesta GET.
'bye

 per inviare la richiesta GET.
e cmq è proprio in un caso di questi che se in querystring metto &amp;
per separare i campi mi manda beatamente (..). Ora è un po' che ho
risolto e sepolto il problema che (sottolineo) mi pare derivasse
proprio da questa chiamata
evidentemente tale controllo lo fa il browser ma non l'oggetto
httpRequest, anche perchè in effetti parlando di HTML nudo e crudo non
ho mai avuto di questi problemi

 a me questo sembra proprio un POST invece :-P
Nel messaggio a cui avevo risposto avevi scritto:
[...] mi capita di avere una chiamata del tipo <a href="index.php?
val=4&id=3&user=12" ...> [...]
<a href="...">[...] mi sembra proprio un GET :-)
'bye

On 20 Mar, 18:06, Agostino De Matteis

si vabbeh, ho capito che avevi capito, il punto era semplicemente
quello che se gestisci tu l'invio di dati tramite javascript devi
codificarti tutti i caratteri, il che è una bella rottura, soppratto
se hai più stadi intermedi (scripting che genera javascript dinamico e
chiamate httprequest ) indipendentemente che siano GET o POST, devo
farmi qualche funzione di filtraggio (non che ne abbia
particolaremente voglia in questo momento).