Newsgroup: it.comp.www.php
Titolo: sintesi di un problema

Ripropongo il problema sotto in maniera sintetizzata:
ho un form, passo la variabile "nome" ad uno script impostando il form in
modo tale da visualizzare il valore inserito qualora venga ricaricato, lo
script di destinazione, che controlla se tutti i campi sono stati riempiti,
rimanda al form precedente e passa la stringa di interrogazione appena
codificata: dove e come è necessario specificare stripslashes e
htmlspecialchars?
Nell'esempio che ho riportato nel post precedente, per il form ho la
funzione:
function strip_it($str) {
$str=urldecode($str);
$str=stripslashes($str);
$str=htmlspecialchars($str);
return($str);
}
per lo script di elaborazione:
function protect_it($str) {
$str=stripslashes($str);
$str=urlencode($str);
return($str);
}
C'è forse un errore?
Se ancora non è chiaro il problema, mi sapreste fare un esempio banale in
cui è necessario adoperare stripslashes e htmlspecialchars, pensando ad un
form e ad uno script che convalida tutti i campi?

 form e ad uno script che convalida tutti i campi?
ad una prima occhiata il sorgente che hai postato richiede 
register_global=on, e, per il fatto che usi stripslashes, penso anche 
magic_quotes_gpc=on. entrambe secondo me sarebbero da disabilitare.
io preferisco usare srip/addslashes quando lo ritengo necessario, e non 
in automatico (vedi manuale per i dettagli, ma in generale aggiunge gli 
apici per le query sql e i l'invio dei valori con get/post).
urlencode si usa SOLO quando manualmente passi dei parametri in GET ad 
un indirizzo, esempio
echo '<a href="pippo.php?pluto=' . urlencode($pluto) . '">pippo</a>';
mentre htmlspecialchars va usato ogni volta che devi scrivere qualcosa 
su pagina html, perchč converte tutti i caratterei speciali in codici 
html (vedi manuale).
spero di essere stato chiaro ,
ciao
-- 
Ranger! aggiungi .it all'indirizzo per rispondermi via mail
www.rossi.eu.com

 html (vedi manuale).
E questo non mi vuole entrare nella testa... :-(
Dunque, ho il mio form, facciamo finta che ho un solo campo da riempire, ad
esempio "nome", però mettiamo che io voglia inserire anzichè il mio nome una
cosa del tipo <img src=/"miaimmagine.jpg/"> perchè sono bizzarro o
dispettoso. Invio i dati ad uno scriptino che deve prendermi la stringa <img
src=/"miaimmagine.jpg/"> e rimandarla indietro al form tramite stringa di
interrogazione. Affinchè nel campo "nome" del form mi compaia tutta questa
stringa senza alterazioni come devo agire con questi htmlspecialchars o
stripslashes? Inoltre non capisco, in quale momento vengono messe le slashes
che poi vanno tolte, e da chi vengono messe, in automatico forse? Se si,
allora che esisterebbe a fare la funzione addslashes?
Nei due file che ho riportato per intero ho provato a togliere e mettere
questa funzioni, un po' a casaccio perchè ancora non ne ho capito il
funzionamento, comunque ho incasinato il codice in maniera tale che una
volta inviato il form la pagina successiva anzichè visualizzarmi
correttamente il "link  di ritorno" mi interpretasse la stringa appena
passata dal form come codice, andando ad alterare così la pagina stessa.
esempio:
ho inserito nel campo nome:
<a href=\"
http://www.libero.it
\">vai</a>
che ha scomposto la pagina di elaborazione inserendo appunto questo nuovo
link. Ma allora htmlspecialchars non doveva stare all'interno della funzione
protect_it?
sto perdendo la testa, sicuramente per una cavolata, ma non ho ancora capito
il meccanismo di htmlspecialchars e di stripslashes...inoltre non vedo
addslashes, quindi ancora più confuso :-(
******************

[CUT]
Problema risolto...era sbagliato il codice del libro su cui studiavo,
ragionandola per conto mio è andata in porto.
:-)
Grazie per avermi dato una mano