Hallo, allerseits!
Ich hab ein kleines Problem bei einer Datenbankabfrage, das für Euch bestimmt leicht lösbar ist, mich Anfänger aber vor ein großes Rätsel stellt:
Ein User kann sich registrieren. Zur Verifizierung erhält er eine E-Mail an die von ihm angegebene Adresse mit einem zufällig erstellten Verifizierungscode - z.B. 1de4d33f333fd322d33434d2ddd. Der Code kann alle Buchstaben enthalten außer den Umlauten und alle Ziffern, er ist zwischen 18 und 20 Zeichen lang. Derselbe Code, den der User per E-Mail zur Verifizierung kriegt, wird auch bei der Registrierung in die entsprechende Tabelle zu seinem Datensatz geschrieben. Wenn der User nun auf den Link in seiner E-Mail klickt, vergleicht das System, ob der mittels get-Funktion übergebene Code mit dem in der Tabelle gespeicherten übereinstimmt. Tut er das, wird der User freigeschaltet.
So weit, so klar. Ist ein übliches Verfahren, wenn man sich irgendwo registriert.
Mein Problem ist nun folgendes:
Wenn ich einstelle, daß der zufällig erstellte Code nur aus Ziffern bestehen darf - also z.B. 12233888599388372 -, dann funktioniert diese Abfrage einwandfrei und das System ändert den Eintrag für die Verifizierung von -1 auf 1, womit der User sich freigeschaltet hat.
Wenn ich jedoch Buchstaben und Ziffern in besagtem Zufallscode vermische - de34h8d83hd822dd883 - und dann die Übereinstimmung mittels eines Links - z.B. index.php?vcode=de34h8d83hd822dd883 - überprüfen will, dann passiert einfach gar nichts. Ich kriege keine Fehlermeldung, aber die Verifizierung wird auch nicht durchgeführt, d.h. der Eintrag für den Status der Verifizierung bleibt hartnäckig -1.
Ich verstehe nun nicht, woran das liegt. Da der Vergleich von einem Code nur aus Ziffern aber einwandfrei funktioniert, vermute ich, daß ich in der Datenbank beim Feld für die Verifizierung - "vcode" - was falsch eingestellt habe. Ich habe aber bereits alles Mögliche durchprobiert: CHAR, VARCHAR, TEXT, etc.
Hat einer von Euch eine Idee, wo das Problem liegen könnte?
Besten Dank schon mal!
Alex