• # Une fonction multi-SGBD et normalement "tout terrain"

    Posté par . En réponse au message Éviter les Injections SQL. Évalué à 2.


    function coreSecureString ($stringValue) {
    //Si jamais les magic_quotes_gpc sont activés, on vire les anti-slash générés automatiquement
    if (get_magic_quotes_gpc()){
    $stringValue = stripslashes ($stringValue);
    }

    //On "échappe" la chaîne de caractère en fonction du type de base de données
    //On part du principe que DBType a déjà été déclaré de la façon suivante : define ("DBType", mysql) par exemple.

    //mysql_escape_string () étant dépréciée, on privilégie _real_escape_string ()

    if (function_exists(DBType . "_real_escape_string"))
    $escapeStringFunction = DBType . "_real_escape_string";
    else if (function_exists(DBType . "_escape_string"))
    $escapeStringFunction = DBType . "_escape_string";
    else
    //Cas ou la fonction n'existe pas pour ce SGBD
    $escapeStringFunction = "addslashes";

    //On renvoie la chaine sécurisée
    return $escapeStringFunction ($stringValue);
    }