Precedente :: Successivo |
Autore |
Messaggio |
piciumilanese Mortale devoto


Registrato: 06/06/07 12:10 Messaggi: 7
|
Inviato: 04 Ott 2007 18:15 Oggetto: Scrivo "L'ALBERO" legge "L\'ALBERO" !! |
|
|
Scusate, sto trafficando col php..
Ho fatto un form perchè dal mio sito possano contattarmi con delle mail. Ma quando la mail arriva sono sbagliati tutti gli APOSTROFI! Cioè sono preceduti da una barra..
Dal prendo i dati in una textarea:
<h1>Messaggio:</h1><textarea name="testo_utente" cols="40" rows="7"></textarea><br><br>
Poi li mostro ad esempio così su un altro foglio:
echo"$_POST[messaggio]"
Come risultato ho che se il messaggio era "Ho visto un'aquila" visualizzo "ho visto un\'aquila" !!
PERCHE'? |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 04 Ott 2007 18:50 Oggetto: Re: Scrivo "L'ALBERO" legge "L\'ALBERO" |
|
|
piciumilanese ha scritto: | Ho fatto un form perchè dal mio sito possano contattarmi con delle mail. Ma quando la mail arriva sono sbagliati tutti gli APOSTROFI! Cioè sono preceduti da una barra.. |
credo che però l'errore non sia nella parte di codice che hai scritto qui... |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 05 Ott 2007 14:57 Oggetto: |
|
|
Gli apostrofi e altri caratteri vengono protetti dal backslash '\'. Quando visualizzi ciò che hai ricevuto dovresti utilizzare la funzione:
stripslashes($str).
In pratica dovresti provare a scrivere:
echo stripslashes($_POST[messaggio]) e tutti gli apostrofi, le backslash, le virgoletti e altri verranno scritti giusti. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 05 Ott 2007 15:20 Oggetto: |
|
|
freemind mi ha appena fatto notare che scrivi
Codice: | echo "$_POST[messaggio]"; |
prova invece a scrivere
Codice: | echo $_POST[messaggio]; |
che non è la stessa cosa...
edit: mi accorgo adesso che dipende anche da una impostazione di php: magic-quotes-gpc, che evidentemente nel tuo caso è abilitata, vedi http://it2.php.net/manual/it/ref.info.php#ini.magic-quotes-gpc |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 05 Ott 2007 17:59 Oggetto: |
|
|
Di fatto le scritture:
echo "$str" e
echo $str
sono la stessa cosa con i magic quote attivi.
Io li tengo a off per motivi di sicurezza (nel senso che tanto per validare gli input uso funzioni che ho scritto io insieme alle mysql_real_escape etc.. quanto scrivo nei db) per cui l'aggiunta e l'eliminazione dei backslash la gestisco a manina.
Come ha fatto notare SverX tu dovresti avere sicuramente magic_quotes_gpc su on.
Per non avere rogne secondo me dovresti lasciare questo attivo e spegnere magic_quotes_sysbase in modo da avere in automatico la protezione su tutti i caratteri stronzi (' " NULL etc..) e smazzarteli con le funzioni addslashes($str) e stripslashes($str) |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 05 Ott 2007 18:17 Oggetto: |
|
|
freemind ha scritto: | Di fatto le scritture:
echo "$str" e
echo $str
sono la stessa cosa con i magic quote attivi. |
questo mi sfuggiva... è evidente che sono abituato ad averlo disattivato...  |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 05 Ott 2007 18:44 Oggetto: |
|
|
Correzione: la scrittura echo "$var" e echo $var dovrebbero essere sempre equivalenti.
I magic quote agiscono sull'escaping e basta.
Le " rappresentato il quoting totale mentre il carattere ' rappresenta il quoting parziale (come nella shell linux).
Io non amo le scritture print "La variabile vale: $Variabile" perchè durante il debug secondo me si fa fatica a beccare i punti dove le var vengono chiamate.
Di fatto una mia riga tipo quando devo concatenare stringhe è nella forma:
print "La prima var vale " . $Var1 . " e la seconda vale " . $Var2;
usando le " oppure gli ' a seconda dei casi (se devo generare html uso gli apici singoli, negli altri casi vado un po' a caso). |
|
Top |
|
 |
piciumilanese Mortale devoto


Registrato: 06/06/07 12:10 Messaggi: 7
|
Inviato: 05 Ott 2007 19:02 Oggetto: grazie! |
|
|
Vi ringrazio! Ora provo proprio a guardare e cercare gli errori ecc.. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 08 Ott 2007 12:13 Oggetto: |
|
|
freemind ha scritto: | Io non amo le scritture print "La variabile vale: $Variabile" perchè durante il debug secondo me si fa fatica a beccare i punti dove le var vengono chiamate.
Di fatto una mia riga tipo quando devo concatenare stringhe è nella forma:
print "La prima var vale " . $Var1 . " e la seconda vale " . $Var2;
usando le " oppure gli ' a seconda dei casi (se devo generare html uso gli apici singoli, negli altri casi vado un po' a caso). |
quoto completamente, utilizzo il medesimo 'schema mentale'... e deve essere per questo che non avevo inquadrato il problema...
grazie free per l'intervento  |
|
Top |
|
 |
|