MySQL "UPDATE" Fehler -- help
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anmelden
bedingung
benutzen
code
erreichen
folge
funktionieren
grad
part
problem
quellcode
register
registrierung
set
setzen
status
update
url
verzweigung
zeile
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage