- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema gestione caratteri speciali
-
Problema gestione caratteri speciali
Buongiorno,
devo gestire dati testuali da e verso form HTML (per l'introduzione e la modifica degli stessi sul database) per gestionali da me realizzati.
Nonostante io utilizzi sull'HTML del back-end, del front-end e sulle collation dei campi testuali di MySQL la codifica "utf-8", ho problemi, non tanto con le lettere accentate, ma con le " (doppie virgolette).
I dati vengono inseriti a database con mysql_real_escape_string(stripslashes($_POST['nomecampoform'])) attraverso campi input text e textarea di form HTML.
Il database salva correttamente le doppie virgolette e le visualizza correttamente lato front-end. Quando però vengono richiamate sul back-end in modifica dentro un campo input text di un form non viene visualizzato nulla.
Qual è il miglior modo di gestire i caratteri speciali in PHP e MySQL per evitare le problematiche sopra esposte (indipendentemente dai settaggi del webserver Apache e dell'interprete PHP)?
Grazie.
Matteo
-
@falcon2600 said:
mysql_real_escape_string(stripslashes($_POST['nomecampoform']))
Metti gli slash e li togli subito?
-
@tigrone said:
Metti gli slash e li togli subito?
L'intera istruzione è stata tratta da un testo sul PHP/MySQL...
Da quello che ho capito io, **stripslashes() **toglie eventuali backslash prima dei caratteri speciali: " diventa " e \ diventa \ (solo se magic_quotes_gpc è on)...
Mentre mysql_real_escape_string() dovrebbe aggiungere un backslash ai caratteri speciali prima dell'inserimento nel DB (anche per ragioni di sicurezza): " diventa " e \ diventa \\....
Quindi prima tolgo (eventuali) backslash e poi li aggiungo (per evitare di raddoppiarli nel caso fossero già presenti)... Correggimi se sbaglio...
Grazie.
-
Prova a togliere quello stripslashes da lì e metterlo dove vai a richiamare i dati.
-
@tigrone said:
Prova a togliere quello stripslashes da lì e metterlo dove vai a richiamare i dati.
Non funziona.
A database ci sono, ma nei campi del form dove recupero i valori non viene visualizzato niente.