• Super User

    Escape su tutti i campi

    Salve,

    una domandina veloce. Finora io per "proteggere" le informazioni inviate tramite query ho usato questo formato:

    mysql_real_escape_string(strip_tags(trim($var)));
    

    Volevo sapere se era possibile impostare una funzione singola da poi richiamare ogni volta su una variabile per evitare di dovere ripetere il codice ogni volta, qualcosa tipo:

    prepara_variabile($var);
    

    Dove la funzione "prepara_variabile" esegue la pulizia del codice come lo farebbe il codice sopra.

    Inoltre, è possibile impostare il codice in modo che ogni dato passat con $_GET $_POST o $_REQUEST venga automaticamente filtrato?

    max

    :ciauz:


  • ModSenior

    Ciao max0005,

    puoi fare cosi:
    [php]
    function prepara_variabile($var)
    {
    return mysql_real_escape_string(strip_tags(trim($var)));
    }
    [/php]
    Per farlo a tutti i valori puoi ciclarti $_POST e $_GET, magari lo fai nel config.


  • Super User

    Quindi ogni volta mi basterebbe fare:

    $campo1 = prepara_variabile($_REQUEST['campo1']);
    

    ?

    Scusa la domanda da neofita (quale sono di PHP :D), ma come faccio a ciclare tutti i $_GET e $_POST?


  • ModSenior

    Si ogni volta ti basta fare in quel modo.
    Per ciclare $_POST puoi fare:
    [php]
    foreach($_POST AS $key => $value)
    $post[$key] = $value;
    [/php]
    Al posto di $post, mi sembra si dovrebbe poter fare anche su $_POST stesso, dipende se vuoi tenerti gli originali.


  • Super User

    Ok grazie mille, direi che è proprio quello che mi serviva! 😄

    Non credo che mi terrò gli originali visto che quei valori faranno parte di una query che andrà ad interpellare/modificare il database. 🙂