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

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


ComFreek

Mod | @comfreek
Moderator
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.
 

saftmeister

Nutze den Saft!
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
 

saftmeister

Nutze den Saft!
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! :)
 

saftmeister

Nutze den Saft!
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.
 

ComFreek

Mod | @comfreek
Moderator
Ich denke, dass das daran liegt, dass bindParam() den Parameter als Referenz nimmt. Dasselbe passiert auch bei preg_match_all() (&$matches).
 

Neue Beiträge