[PHP] Prepared Statements mit PDO (Teil 1 - Einführung)

[PHP] Prepared Statements mit PDO (Teil 1 - Einführung)

Hi saftmeister,

auf folgende zwei konkrete Aspekte würde ich noch hinweisen, dass sie z. B. der Kürze halber weggelassen wurden:

- $_POST['benutzername'] ohne isset() zu nutzen, kann zu E_NOTICE-Warnungen führen.

- Passwörter niemals im Klartext abspeichern.

Ansonsten finde ich den Artikel einen guten Start als Einführung in PDO.
 
Vielen Dank ComFreek, ich wollte den ersten Teil nicht mit Nebenkriegsschauplätzen überladen. Die Fehlerbehandlung habe ich absichtlich weg gelassen. Die Anmerkung mit E_NOTICE ist vollkommen berechtigt, und wird ins Fehlerhandling mit eingebaut werden. Der zweite Punkt ist ein guter Hinweis, den ich im komplexeren Teil unterbringen wollte. Daher hab ich bei der Tabellen-Struktur bereits auf 32 Zeichen für das Passwort vorgesehen, um dort einen Hash abspeichern zu können.

Danke für die Freigabe. Ich hoffe, heute abend kommt der zweite Teil.

Grüße
 
Danke für den Hinweis, ich wollte SHA1 verwenden und hatte fälschlicherweise im Hinterkopf, dass es 32 statt der korrekten Länge von 40 Zeichen hat. Wird umgehend korrigiert. Aber statt SHA1 werde ich dann das von dir vorgeschlagene password_hash() verwenden. Super! :)
 
Noch als Ergänzung zu E_NOTICE, das mir bisher auch nicht bekannt war und ich durch ausprobieren des Codes für den nächsten Beitrag herausgefunden habe: Nicht-initialisierte Variablen führen bei der Verwendung von bindParam() nicht zu einer E_NOTICE. Daher habe ich (absichtlich um den Fehler zu provozieren) die Funktion strval() um $_POST['benutzername'] gewrappt.
 
Ich denke, dass das daran liegt, dass bindParam() den Parameter als Referenz nimmt. Dasselbe passiert auch bei preg_match_all() (&$matches).
 
Zurück