kostenloser Webspace werbefrei: lima-city


addslashes vs mysql_real_escape_string?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tuvok

    tuvok hat kostenlosen Webspace.

    Also ich steh derzeit etwas auf der Leitung, bisher hab ich immer bei Mysql Abfragen die von Benutzern kommen folgendes angewendet.
    addslashes(htmlentities($_POST['bla']))
    Soll ich jetzt auch noch mysql_real_escape_string darauf anwenden oder nicht?! Hab gegoogelt und die einen verwenden addslashes und die anderen mysql_real_escape_string.
    W?re nett wenn da einer f?r Aufkl?rung sorgen k?nnte.

    Dank?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    ich w?rde addslashes nicht verwenden.
    Verwende besser einfach nur mysql_real_escape_string. Es sollte so reichen:

    $var = mysql_real_escape_string(htmlentities($_POST['bla'])) ;


    Alles klar?

    mfg,
    hr
  4. http://de2.php.net/manual/de/function.mysql-real-escape-string.php
    Einfach mit der Funktion sprintf() den query formatieren und gleichzeitig mit der funktion quote_smart sichern
    /**
     * Variable f?r sichere Verwendung quotieren
     */
    function quote_smart($value)
    {
       // stripslashes, falls n?tig
       if (get_magic_quotes_gpc()) {
           $value = stripslashes($value);
       }
    
       // quotieren, falls kein integer
       if (!is_numeric($value)) {
           $value = "'" . mysql_real_escape_string($value) . "'";
       }
    
       return $value;
    }
    
    // verbinden
    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
       OR die(mysql_error());
    
    // sichere Anfrage formulieren
    $query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s",
               quote_smart($_POST['username']),
               quote_smart($_POST['password']));
    
    mysql_query($query);


    Beitrag ge?ndert am 2.02.2006 00:45 von janbaier
  5. Hiho,

    man sollte die Funktion "mysql_real_escape_string ()" nutzen, da es sie daf?r gibt und Zeichen entwertet, die die Funktion "addslashes ()" nicht entwertet. Wenn du wissen m?chtest, welche es sind, dann frag alopex. ;-)

    heavyraptor :
    Wieso benutzt du die Funktion "htmlentities ()"?
    Die sollte man benutzen, wenn man etwas ausliest, nicht beim Eintragen.

    MfG Lucas
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!