ciao ragazzi,
se inserisco in un campo del database un valore che contiene il carattere ', viene inserito nel database preceduto dal carattere \.
Esempio, se inserisco dall'aria, viene scritto dall\'aria.
come mai? e come posso evitarlo? grazie.
ciao ragazzi,
se inserisco in un campo del database un valore che contiene il carattere ', viene inserito nel database preceduto dal carattere \.
Esempio, se inserisco dall'aria, viene scritto dall\'aria.
come mai? e come posso evitarlo? grazie.
come mai?
avrai attivo il magic quote gpc, che serve a prevenire al sql injection.
(documentati sul'uno e sull'altro con ricerche su forum e google)
Come eviti?
echo stripslasches($testolettodaDB);
PS: kubrick![]()
Sostituisci prima di inserire nel db il carattere ' con la sua html entities (cercale su google). Oppure usa la funzione addslashes! Io ti consiglio la prima soluzione!
I dilettanti costruirono l'Arca, i professionisti il Titanic!
addslashes serve ad aggiungere slashes...Originariamente inviato da Nunkij
Sostituisci prima di inserire nel db il carattere ' con la sua html entities (cercale su google). Oppure usa la funzione addslashes! Io ti consiglio la prima soluzione!
Ma questi vengono già aggiunti da php per questioni di sicurezza.. fungono smeplicemente da escape del carattere ' per il database...
Sostituirlo con l'entity non credo serva a nulla.. nel momento stesso in cui arriva a PHP è già escapato..
avresti smeplicemente \<entity> invece di \'
![]()
quindi cosa faccio?
mitico kubrickPS: kubrick![]()
questo
Originariamente inviato da }gu|do[z]{®©
echo stripslasches($testolettodaDB);
bada che se vuoi fare uno script portabile ti convinee modificare anche il lato "inserimento"...
if (!get_magic_quotes_gpc()) $testo = addslashes($testo);
per tutte le variabili che provengono dall'utente...
In questo modo sei sicuro che il testo venga sempre escapato, anche se il magic quote gpc è disattivato.
![]()
senti, io dovrei escapare tutte le variabili e ne sono davvero tante...
esiste un modo per escaparle tutte con una semplice funzione (tranne quelle numeriche ovviamente)?
grazie...
dovresti "de-escaparle" immagino..
puoi fare un ciclo foreach su ogni "$row" che proviene dal DB...
foreach($row as $k => $v) $$k = stripslashes($v);
dovrebbe andare
![]()