Wie prüfe ich eine GET Variable mit dem Wert in der DB ?

  • Hallo,

    ich habe folgendes Problem,

    user bekommt nach dem reg. eine bestätigungsmail, beim klick wird er auf die seite aktivierung.php geleitet.

    zb. so

    index.php?site=aktivierung&akt=5da602601fde971f5ebfc8271dbe1121

    der code "5da602601fde971f5ebfc8271dbe1121" ist in der db (spalte des users) unter `aid` gespeichert.

    ist der code falsch soll eine fehlermeldung kommen.
    ist der stimmt der code in der GET Variable mit dem code in der db überein soll er eine meldung geben "Aktiviert"

    die funktion ansich funktioniert super nur egal was ich im $_GET übergeber, ob falsch oder richtig gibt er mir `Aktiviert` aus

    Was mache ich falsch, hier mal meine aktivierungs.php


    gruß
    michael

  • Leuuuute, GRUNDLAGEN!!!
    1. Achtung, SQL-Injection gefahr

    PHP
    $pre = mysql_query("SELECT aid FROM user WHERE email='".$_GET['akt']."'");


    $_GET['akt'] mit mysql_real_escape_string() prüfen.
    2. Du hast doch gesagt spalte 'aid'

    PHP
    ... "WHERE email='...'" ...


    3. WAS gibt mysql_query() zurück?
    Query durch -> true
    bei SELECT -> das ergebnis
    query FEHLERHAFT -> false
    Die rückgabe von mysql_query() hat aber NICHTS mit den Auswirkungen des Querys zu tun.

    Was macht man also?
    mysql_affect_rows();

    PHP
    $query=mysql_query("Statement");
    if (!$query) exit(mysql_error());
    if (mysql_affect_rows()!=0) {
    } else {
    }


    Und frag bitte nicht was mysql_affect_rows macht sondern frag das Google.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • evtl. ein beispiel könnte mir weiterhelfen


    Es gibt 'zig tausende Beispiele im Netz, du müsstest nur mal suchen

  • Ups, da fehlt ein "