Vinzenz Mai: MySQL + Javascript + PHP

Beitrag lesen

Hallo,

Ich bin gerade dabei ein "registrieren" Modul zu schreiben. Jetzt möchte ich mittels Javascript prüfen, ob der vom User eingegebene Benutzername schon vorhanden ist. Dazu muss das Script auf die MySQL Datenbank zugreifen.

a) mit AJAX abfragen.
b) hast Du mit dieser Prüfung eine Race-Condition, genauer eines der Art
   Time of check to time of use.
   Um letzteres zu vermeiden müsstest Du den Benutzernamen reservieren, z.B.
   für die Dauer einer Session oder bis der Benutzer einen anderen Namen
   auswählt.

c) Es ist völlig überflüssig, Spalten abzufragen, die Du nicht benötigst.
   Verwende *nicht* SELECT *, wenn es nicht erforderlich ist:

$sql =  "SELECT * FROM users WHERE name = '<script type='text/javascript'>newuser.Benutzername.value</script>'";

SELECT COUNT(name) Anzahl WHERE ... reichte hier aus.

d) Vergißt Du die kontextgerechte Behandlung von variablen Werten wie hier
   dem vom Benutzer eingegebenen Namen. Es gibt Mütter, die solche Fehler
   ohne Rücksicht auf Verluste ausnutzen :-)

e) Dies gilt nicht nur für die Verwendung im SQL-Kontext, dies gilt auch für
   den HTML- und Javascript-Kontext.

Bitte dedlfix' Artikel lesen und beherzigen.

Freundliche Grüße

Vinzenz