Non vorrei aggiungere confusione....Originariamente inviato da andrea_kobe
@piero.mac
Grazie per la segnalazione della pillola. E' molto ben fatta anche se non mi ha chiarito tutti i dubbi.
Nella sua pillola luca200 si è fatto una funzioncina che elimina lo slash se il magic_quotes è attivo e lo lascia inalterato se invece è disattivo. Poi richiama la sua funzione e la applica al valore ricevuto via post. Quindi se io nel mio form ho 10 campi devo richiamare la funzione 10 volte e sempre 10 volte applicare mysql_real_escape_string?![]()
La ragione prima, e che e' ben descritta nella pillola, credo sia quella di poter avere per ogni tipo di DBMS la corretta gestione dell'appropriato carattere di escape.
Se magic quotes attivo applica a tutte le stringhe in ingresso alla pagina il carattere di escape generalizzato (il backslashes oppure l'apostrofo a seconda dell'impostazione) non e' che togliendolo migliori la prestazione, tanto ormai la cosa era fatta... ma lo fai per gestire nel modo corretto la tua stringa. Per migliorare la prestazione bisognerebbe "impedire" (magic_quote_gpc = OFF) alla funzione di fare questo lavoro, e lo potresti fare mettendo l'istruzione nel file .htaccess a prescindere dal settaggio del php.ini
Quando una funzione od un settaggio viene dato come "deprecato" significa che "si deve" abbandonare almeno a partire dagli script nuovi, per evitare che poi da "deprecato" diventi "eliminato" e lasci i nostri script nelle cosi' dette "brache di tela"
Per quanto riguarda il controllo direi che va applicato ad ogni variabile, allo stesso modo con cui applichi tutti gli altri controlli sui dati in ingresso.
Sprintf potrebbe essere usato per fare dei controlli sul tipo di dato che arriva da una variabile.... "per comporre" una stringa.... ma personalmente non mi piace. Se un dato non e' quello che mi aspetto vorrei gestirlo "prima" di inserirlo, per esempio, in una query.

Rispondi quotando