|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 6
|
[MySQL e PHP]
Ciao a tutti. Il mio problema è il seguente: ho una pagina html in cui ho inserito una textbox e di seguito un button che indirizza la mia form ad una pagina php che si occupa di leggere il contenuto del campo text e inserirlo in un database di MySQL. funziona tutto, tranne il caso in cui nella textbox inserisco caratteri speciali quali l'apostrofo, lo slash, etc. In questi casi l'intero testo non viene memorizzato nel database. Come posso fare per far sì che anche il testo che comprende questi caratteri speciali venga memorizzato? Grazie a tutti
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2002
Messaggi: 305
|
Se non sbaglio questa funzione ti può servire per modificare la stringa prima di passarla a mysql:
http://it.php.net/mysql_real_escape_string |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 6
|
Grazie. Ho notato però che funziona con gli \ e / e ', ma non funziona con i caratteri accentati (àèìòù).
Come posso fare? Grazie |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io userei la funzione htmlentities con il parametro ENT_QUOTES.
PS: la prossima volta metti un titolo più chiaro alla discussione, non basta specificare il linguaggio, ma bisogna anche specificare un sunto del problema. |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 6
|
[MySQL e PHP - problema di inserimento caratteri accentati in db]
Ho provato con:
$testo_controllato = htmlentities($testo, ENT_QUOTES, 'UTF-8'); ... $inserimento = mysql_query("insert into nome_tabella (testo, ...) values('$testo_controllato', '...'); ma poi quando vado a controllare i valori inseriti, i caratteri accentati non sono inseriti correttamente Dove sbaglio? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo che non sono inseriti correttamente, sono stati modificati con gli special chars html...quando andrai a stampare nuovamente qui caratteri otterrai che saranno perfettamente visibili sulla pagina html.
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 6
|
Ho provato anche quello e invece che i caratteri àèìòù mi propone ??/i>
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scusa, fai una stampa dei caratteri prima di inserirli nel database e recuperali andando a prendere il sorgente della pagina html generata.
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
Se il tuo database fosse creato con il charset LATIN1_bin non avresti di questi problemi con i caratteri accentati... per caso l'hai creato con UTF-8?
Ciao
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
![]() |
![]() |
![]() |
#10 |
Junior Member
Iscritto dal: Feb 2008
Messaggi: 6
|
sì, infatti. Il problema era proprio il tipo di codifica. Infatti nei parametri ($testo, ENT_QUOTES, 'UTF-8') ho provato a cambiare UTF-8 con 'ISO...' che corrisponde a quello di default e il problema è sparito
![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:26.