Seite 1 von 1

Confirmation-Code-Eingabe vereinfachen

Verfasst: 29.04.2005 10:17
von TK
Hallo,

Ich will die Eingabe des Confirmation-Codes etwas "idiotensicherer" machen, indem etwaige Kleinbuchstaben bei der Eingabe automatisch in Großbuchstaben umgewandelt werden sollen und die 0 (Null) in ein O (großes Otto) verwandelt werden soll. Es scheint immer wieder Leute zu geben, die den Hinweistext dazu nicht verstehen (können?).
Es werden vom PNG-Skript ja eh keine Kleinbuchstaben oder die Null erzeugt; insofern würde ich da auch kein erhöhtes Risiko durch diese Maßnahme sehen...

Ich hatte schon etwas versucht mit str_replace("0","O",$confirm_id) und strtoupper(), aber anscheinend war es falsch eingesetzt oder ich habe eine andere Stelle übersehen, wo es ebenfalls hätte eingesetzt werden müssen... zumindest hat es nicht geklappt :(

Also, wie und an welchen Stellen muss meine Idee korrekt umgesetzt werden? *sich doof vorkommt, weil's nicht hinkriegt :-?*

Verfasst: 30.04.2005 06:39
von TK
Ich antworte mir jetzt mal selbst ;), weil ich die Lösung selber gefunden habe und sich vielleicht auch andere dafür interessieren:

Code: Alles auswählen

--- Öffne includes/usercp_register.php ---

--- Finde: ---

if ($row['code'] != $confirm_code)

--- Füge DAVOR ein: ---

$confirm_code = strtr($confirm_code, "abcdefghijklmnopqrstuvwxyz0", "ABCDEFGHIJKLMNOPQRSTUVWXYZO");

--- Speichern und hochladen ---
Damit werden bei der Confirmationcode-Eingabe eventuell eingegebene Kleinbuchstaben in Großbuchstaben umgewandelt und eine 0 Null in ein großes O; dies funktioniert, da bei der Code-Grafikerzeugung eh schon nur Großbuchstaben und/oder die Zahlen 1-9 (nicht aber 0) erzeugt werden.
Die Änderung hat den Vorteil, dass die User sich nicht mehr an die Vorgabe halten müssen, auf Klein-/Großschreibung zu achten oder auf die Null mit Schrägstrich (wer will, kann diesen Hinweis dann auch in der language/lang_{sprache}/lang_main.php dementsprechend abändern)


P.S.: Warum es vorher nicht geklappt hat: Ich hatte einen blöden Logikfehler begangen, und strtr() auf $confirm_id angewandt statt auf $confirm_code, wie es richtig wäre :roll: