kostenloser Webspace werbefrei: lima-city


MySQL "UPDATE" Fehler -- help

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    cycrox

    cycrox hat kostenlosen Webspace.

    Ich versuche grad mit php ein script zu schreiben damit ich beim login sone Bestätigungsmail bekomme mein account freigeschaltet wird und ich mich dann erst anmelden kann

    klappt auch alles super bis auf wenn ich in der e-mail den bestätigungslink folge sagt mir meine seite zwar ich wäre registreirt un könne mich jetzt anmelden aber in der datenbank wird der Wert status , so heißt der für ob man aktiviert ist , nicht auf 1 geändert wie erwünscht sondern bleibt null .
    heir der entscheidene part im quellcode:

    elseif($_GET["state"] == register  and $_GET["CB"]!=""){
    $UPDATE="UPDATE  user SET status ='1' WHERE mcode = ' ".$_GET['CB']. " ' ";
    echo "<!-- $UPDATE -->";
    $UP=mysql_query($UPDATE);
    $st=2;
    [.......]
    elseif($st==2){ 
    echo "<p align='center'>Registrierung war erfolgreich .<br>Sie können sich nu mit ihrem
     Benutzernamen und ihrem Passwort anmelden.</p>";
    }

    is wahrscheinlich n ganz einfgacher fehler hab ihn aber biosher nicht gefunden
    wenn ihrs selber testen wollt : cycrox.4lima.de
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Moin,
    Leerzeichen in der WHERE-Bedingung, könnte ein Problem sein. Ansonsten blick ich nicht durch, was du z.B. damit erreichen wolltest, $st auf 2 zu setzen und gleich dahinter in der nächsten elseif-Bedingung abzufragen, ob es gleich 2 ist. Diese Bedingung wäre nie erfüllt gewesen, denn
    if($a) {
      $b = true;
    } elseif($b)  {
      echo "Unmöglich.";
    }

    kann nicht funktionieren, weil $b nur gesetzt sein kann, wenn $a zutraf. Durch die Mehrfach-Verzweigung wird das zweite elseif, für den Fall, dass das erste if oder irgendein elseif davor zutrifft, garnicht mehr geprüft. Dafür müsstest du eine einfache if-Verzweigung benutzen.

    Zum Problem:
    elseif(($_GET["state"] == register)  && ($_GET["CB"] != "")){
      $UPDATE = mysql_query("UPDATE user SET status = '1' WHERE mcode = '".$_GET['CB']."'");
      if($UPDATE) {
        echo "<p align='center'>Registrierung war erfolgreich .<br>Sie können sich nu mit ihrem Benutzernamen und ihrem Passwort anmelden.</p>";
      }
    }

    So müsste es eigentlich funktionieren, wenn in der SQL-Tabelle alles stimmt. :-)

    Gruß
    styVe (qap2-Team)

    Beitrag zuletzt geändert: 21.1.2010 9:42:40 von qap2
  4. Autor dieses Themas

    cycrox

    cycrox hat kostenlosen Webspace.

    jup hast recht hab ich grade selber schon gesehen , ich hatte das ' vom " mit leerzeichen getrennt damits optisch besser aussieht und schon geht das script nicht mehr ;

    zu dem was ich damit erreichen will muss ich dir aber sagen das ich da nicht umsonst [....] hingetippt habe ; zwischen den beiden abfragen ist noch ungefähr 1000 zeilen code

    aber trotzdem danke für deine bemühung

    gruß cycrox
  5. 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!