Ergebnis 1 bis 3 von 3
  1. #1
    Mitglied
    Registriert seit
    Jun 2009
    Ort
    Im Forum
    Beiträge
    530

    Standard [PHP] Daten für SQL maskieren

    Hallo Leute,

    ich schreibe gerade ein paar Funktionen, die mir das Arbeiten auf Dauer einfacher und sicherer machen sollen.

    Dazu gehört auch eine Funktion, die anhand des Datentyps eine Variable richtig maskiert.
    PHP-Code:
    /**
    * Maskiert alle Variablen gemäß ihrem Typ für MySQL
    *
    * @param $to_escape   Der zu maskierende String
    * @param $kind        Der Datentyp der beachtet werden soll
    *
    * return              Die maskierte Variable
    */
    function query_escape($to_escape$kind NULL) {
        
    $datatypes = array('s''b''a''i''d''f''u''o''r');
        
        if(!
    in_array($kind$datatypes)) {
            
    $kind substr(gettype($to_escape), 01);
        }
        
        switch(
    $kind) {
            case 
    's':
            case 
    'u':
                return 
    "'".mysql_real_escape_string($to_escape)."'";
            case 
    'b':
                return (
    $to_escape)? 1:0;
            case 
    'a':
            case 
    'o':
            case 
    'r':
                return 
    "'".serialize($to_escape)."'";
            case 
    'i':
                return 
    intval($to_escape);
            case 
    'd':
                return 
    doubleval($to_escape);
            case 
    'f':
                return 
    floatval($to_escape);
            default:
                return 
    "'".mysql_real_escape_string($to_escape)."'";
        }
        
        return 
    NULL;

    (ungetestet!)

    Hab ich da irgendwas vergessen?
    Bei Stringstypen setzt sie außerdem die einfachen Anführungszeichen, damit man diese ebenfalls nicht vergisst.

    LG

  2. #2
    Operator

    Board:Crew

    Avatar von aNtiCHrist
    Registriert seit
    May 2000
    Beiträge
    23.383

    Standard Re: [PHP] Daten für SQL maskieren

    Warum versuchst du etwas neu zu erfinden, was es bereits bei den Prepared Statements gibt? Siehe http://www.php.net/manual/en/mysqli-stmt.bind-param.php

    Der Name der Funktion ist ansonsten auch irreführend, da du nur bei Strings tatsächlich die Werte maskierst. Nach der Serialisierung müsstest du übrigens auch maskieren.

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Jun 2009
    Ort
    Im Forum
    Beiträge
    530

    Standard Re: [PHP] Daten für SQL maskieren

    Ohh - das ist mir aber peinlich^^ Ich arbeite schon seit einiger Zeit mit Prepared Statements und dann sowas^^
    Ok hat sichalso erledigt

  4.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •