PDA

View Full Version : [MySQL e PHP]


robydg
22-02-2008, 08:19
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

fabianoda
22-02-2008, 09:24
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

robydg
24-02-2008, 11:33
Grazie. Ho notato però che funziona con gli \ e / e ', ma non funziona con i caratteri accentati (àèìòù).

Come posso fare?

Grazie

cionci
24-02-2008, 11:44
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.

robydg
24-02-2008, 11:57
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?



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.

cionci
24-02-2008, 12:02
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.

robydg
24-02-2008, 12:04
Ho provato anche quello e invece che i caratteri àèìòù mi propone ??/i>

:muro:


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.

cionci
24-02-2008, 12:09
Scusa, fai una stampa dei caratteri prima di inserirli nel database e recuperali andando a prendere il sorgente della pagina html generata.

khamel
25-02-2008, 14:17
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

robydg
25-02-2008, 14:34
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 :) grazie a tutti :)


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