- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- mysql_escape_string();
-
mysql_escape_string();
Salve!
Ho un form che mi serve per salvare dei dati.
Ho i miei bei campi di input di tipologia text e la mia textarea.
Tramite una funzione che ho creato posso editare questi dati che ho precedentemente salvato nella medesima maniera.**Problema:
**Salvo sul database queste porzioni di testo che estrapolo da una textarea.
Siccome questi dati hanno o possono contenere caratteri come l'apostrofo cosa che mysql in varchar non accetta dandomi errore, in php ho aggiunto davanti alla variabile questa funzione:
mysql_escape_string($testo);Succede che su linux va tutto bene. Dopo aver fatto il submit sul form e salvato i dati, se vado in futuro a ricontrollarli questi hanno mantenuto le mie variazioni come dio comanda.
In windows no!
Rimane tutto però davanti agli apostrofi compare ad ogni nuovo salvataggio uno SLASHad esempio creo un nuovo dato scrivendo nella textarea questo:
"bla bla bla c'era una volta nel west un'anziana signora".clicco su** SALVA
decido poi di editare questo dato, quindi la mia funzione mi pone gli strumenti x farlo. **In linux? ok, in windows? NO! Vedo i dati precedenti così:
"bla bla bla c**/'era una volta nel west un/**'anziana signora".
Se salvo nuovamente e riedito il dato trovo una nuova variazione:
"bla bla bla c**//'era una volta nel west un//**'anziana signora".E così via!
-
Nessuno sa darmi risposta?
-
Risalve sono sempre su questo problema , essendo passato un bel pò di tempo volevo tornare a chiedervi se sapevate darmi una risposta Il problema è sempre il solito: nonostante il metodo mysql_escape_string , su windows compaiono comunque le slash davanti ad ogni apostrofo al momento del salvataggio su database
-
Controlla in php.ini magic_quotes_runtime Se ti succede questo può darsi sia a off su Linux e on su Windows.
Se è così lo metti a off anche su Windows o fai uno stripslashes sui dati estratti dal db prima di inserirli nei campi textarea dove fai l'edit.
-
No l'avevo su off pure su windows però ti ringrazio perchè mi è balzato l'occhio a questa stringa:
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = onHo cambiato su off e ora va benissimo =D
-
Ok, da come avevo capito il problema sembrava uno invece era l'altro Comunque puoi tenerlo off, basta ti ricordi di passare a mysql_escape_string() tutto quello che ricevi da $_POST o $_GET e usi in una query.