Come usare mysqli_real_escape_string()?

Quando uso la funzione mysqli_real_escape_string($link, '"corr"e"nte"')

ottengo in output la stringa con il backslash sui doppi apici, ossia \"corr\"e\"nte\" che è il comportamento corretto per questa funzione, solo che nel mio database locale me lo salva senza i backslash, mentre in quello remosto con i backslash, come faccio ad uniformare il comportamento al primo caso? Grazie.

In Corso 4
MySql 08-04-2019 2 Risposte 2613 Visite +1
Gaspare Buturrà

Gaspare Buturrà

Autore di questa domanda

Risposte ( 2 approvate )

  1. Michele Ladonia
    +1
    08-04-2019 22:24:00
    Rispondi

    Sicuramente il file php.ini sul tuo server remoto ha magic_quotes abilitato. Puoi verificarlo eseguendo la semplice istruzione:

    echo var_dump(get_magic_quotes_gpc()); //Ritorna TRUE (vero) se è abilitato

    Disabilita magic_quotes sul server per ottenere un comportamento a livello globale, oppure usa di volta in volta le funzioni di abilitazione e disabilitazione delle sequenze di escape (quindi anche su apici e virgolette) all'occorrenza come la mysqli_real_escape_string o la addslashes e l'inversa stripslashes.

  2. Michele Brughese
    0
    08-04-2019 22:30:30
    Rispondi

    Penso che una soluzione più semplice sia settare a runtime il file php.ini con magic quotes a zero 0 (falso, disabilitato) nel tuo script, basta scrivere:

    ini_set('magic_quotes_runtime', '0');

    è bene precisare che la magic_quotes_gpc è una direttiva separata che si applica solo agli array globali GET / POST / COOKIE.

    La funzione ini_set() può essere utilizzata per modificare temporaneamente le impostazioni del file php.ini (la durata dello script). Questo assicurerà di ottenere lo stesso comportamento su tutti i server, i parametri sono il nome della direttiva che si desidera impostare e il nuovo valore da assegnargli, entrambi sotto forma di stringhe (anche se il valore è numerico).

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva