Hallo Matthias,
bindParam
: Die Variablen werden via Referenz an den Parameter gebunden.Deshalb kann man in Schleifen eben nicht
bindValue
verwenden, weil da der zum Zeitpunkt des Aufrufs aktuelle Variablenwert an den Parameter gebunden wird - richtig?
Doch, können sie: aber halt bei jedem Schleifenaufruf erneut :-) Weil, wie du korrekt erkannst hast, bindValue
den Wert der Expression an den Parameter bindet.
Falls du magst, könntest du noch mal über die Endfassung schauen.
Sieht gut aus, mir gefallen die Änderungen. Jetzt noch zum dritten Teil: üblich ist hier nicht, das Token in der Session zu speichern, sondern in einer Spalte bei dem Datum mit einem UNIQUE
-Constraint. Sonst muss man das Token bei jedem Formular-Aufruf neu generieren und in der Session ändern; und wenn man das macht, ist man auch nicht mehr wirklich gegen einen Reload geschützt: ich rufe das Formular erneut auf, das Token ändert sich, ich lade die Seite mit dem POST
-Request neu, das Token unterscheidet sich - zack, doppelter Datensatz.
Speichert man es bei dem Datum, hat man dieses Problem nicht.
LG,
CK