maledetto apostrofo postato il 21/06/2009 19:06:15 nel forum programmazione, gdrcd e open source
Salve a tutti,
Sto programmando le missive, però c'è un piccolo problema. Quando nel testo si riscontra un' apostrofo (o un' apice singolo ') la query non viene eseguita. Qualcuno conosce il problema?
Pagine → 1
21/06/2009 19:23:30
Dipende dall'SQL che esegui.
In generale, il problema derivato da una falsa chiusura del cammpo dovuto alla presenza di un apice è facilmente risolvibile con la funzione addslashes($string)
21/06/2009 19:41:38
Esattamente... quindi quando andrai a fare la query di inserimento nel database, occhio a passargli la variabile "trattata" con quella funzione...
21/06/2009 19:48:59
Non vorrei dire cavolate, ma se non erro con GET, COOKIE e POST questa funzione dovrebbe già essere implementata, ed io uso un GET, comunque proverò!
21/06/2009 19:58:11
Effettivamente funziona, anche se ancora mi sfuge il perchè di ciò!
Io ho sempre saputo che con GET e Post e Cookie la funzione addslash non servisse...
😳
21/06/2009 21:30:31 e modificato da eldorn il 21/06/2009 21:33:32
Usi GET per passare una missiva? FOLLE!
GET ha un range di 256 caratteri... roba simile devi passarla con POST xDD
Oltre al fatto che passandola con GET qualche utente "malizioso" potrebbe inviare missive direttamente dalla barra di indirizzi...
21/06/2009 21:51:49
http://it2.php.net/mysql_real_escape_string
è un modo utile per filtrare input che deve andare in DB mysql, esiste anche la versione mysqli. Altre opzioni sono usare le funzioni di filtering:
http://php.net/manual/en/ref.filter.php
21/06/2009 22:22:27
21/06/2009 23:21:32
Controlla il contenuto della variabile prima di fare la query, oppure stampa direttamente la query prima di eseguirla. Cosi' sai con che stringa hai a che fare perche' fa fallire la query.
21/06/2009 23:25:18
a tal proposito è utile usare la funzione (per mysql sempre ma esiste anche per altri DB)
mysql_error().
una buona pratica di scrittura procedurale per le query può essere
$result = mysql_query('MIA QUERY') or die(mysql_error());
Consultare il sito www.php.net per ulteriori info;
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
nick nightingale ha risposto alla discussione: Perché non avete più voglia di giocare?