Benutzer anhand md5 email auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Benutzer anhand md5 email auslesen

    guten abend

    ich habe ein kleines problem dass man aber recht fix lösen dürfte:

    ich will eine kleine registrierung machen, in der man, nach erfolgreicher anmeldung eine email mit aktivierungslink bekommt (kennt man ja von diversen foren).
    ich habe es so gelöst, dass an den link die email mit md5 hash angehängt wird, nun will ich ein feld in der datenbank, nach dem klick auf den link in der email ändern (activated=1).

    ich hatte mir das recht einfach vorgestellt, aber meine folgenden lösung funktioniert nich:

    Code:
    $md5mail = $_GET["md5mailfromlink"];
    if (@mysql_query("UPDATE FROM users SET activated='1' WHERE MD5(email)='$md5email' LIMIT 1")) {
        echo "dein account wurde aktiviert, viel spass!";
    }
    wär nett wenn ihr mir helfen könntet

    // ok hab mir das nochmal nach 5 minuten pause angeschaut, es muss natürlich UPDATE users SET activated='1' WHERE MD5(email)='$md5email' LIMIT 1 heißen, verzeiht mir bitte, aber um halb 3 denkt es sich manchmal nichtmehr so fix
    Zuletzt geändert von Peet; 28.10.2006, 02:41.

  • #2
    Du solltest dich aber auch mal über SQL-Injections informieren - das was du da machst, ist nen Sicherheitsloch
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Code:
      $md5mail = mysql_real_escape_string($_GET["emailfromlink"]);
      würde das reichen oder wäre es noch sinnvoll

      Code:
      $md5mail = htmlspecialchars($_GET["emailfromlink"], ENT_QUOTES);
      zu benutzen?
      Zuletzt geändert von Peet; 28.10.2006, 14:26.

      Kommentar


      • #4
        Nein, wäre es nicht.

        Behandle Daten jeweils so, wie es der Kontext, in den du sie überführen willst, erfordert.

        Der Kontext in deinem Beispiel ist die DB-Schnittstelle - und die interessiert sich absolut nicht dafür, ob bestimmte Zeichen in einem absolut anderen Kontext, wie bspw. HTML, vielleicht irgendeine Sonderbedeutung haben.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X