Hallo, in meinem Shop lege ich die Kunden selbst an und vergebe ein individuelles Passwort. Beim ersten Aufruf des Shops erinnere ich den Kunden daran, dass er bitte sein Passwort ändert. Kann ich irgendwo die Info abrufen ob er dies auch getan hat? Ich habe in der Datenbank nichts dazu gefunden. Dies wäre gut, damit ich die Erinnerung nach der Änderung auch ausblenden kann. Sonst müsste ich im Prozess der Passwortänderung einen entsprechenden Wert schreiben lassen aber lieber würde ich diese Information einfach abrufen.
Man könnte es an den Emails sehen, denn wenn ein Kunde sein Passwort auch in seinem login ändert und er eine automatisierte Email darüber bekommen würde (das ist in vielen Shops so), dann kann man in den Emails sehen, ob eine vom System versendet wurde.
Erstmal Danke für die schnellen Antworten. @Wilken (Gambio) Wann, es geändert wurde ist auch weniger interssant für mich. Die Info "Ob" es geändert wurde, brauche ich.
Gibt es zum folgenden Vorgehen einwände? - In der SQL-Tabelle "customers" eine zusätzlich Spalte erstellen, - in der PasswordDoubleOptContentControl.inc.php unter // Verification (ca. Zeile 126) um Zuge des SQL-Updates die neue Spalte mit "+1" berechnen, - in der LoginContentControl.inc.php die neue Spalte auslesen und in Smarty puschen um die Info "einfach" im Template nutzen zu können.
Aus dem Bauch: Ich würde eher eine extra Timestamp Spalte einführen als einen Zähler, der hat nämlich wenn du irgendwann schaust auch keinen zeitlichen Kontext. Die SQL Spalte würde ich per SQL trigger an den Passorthash hängen, ändert der sich, ändert SQL den timestamp, so kriegst du das immer mit. Wenn du dann Kontoerzeugungstimestamp und Passwortänderungstimestamp vergleichst, weisst du auch ob das Passwort noch das initiale ist.
Das ginge grob so: Code: ALTER TABLE customers MODIFY COLUMN password_changed_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Der Wert ändert sich dann aber auch, wenn der Kunde irgendwas an seinen Daten ändert. Das muss nicht das Passwort sein .
Ja genau an der Stelle bin ich auch gescheitert und war dann auch am Ende mit meinem spärlichen SQL-Wissen... Der Code bewirkt mehr oder weniger das gleiche, nur reagiert er leider auf jede Spalte der Zeile... BEFORE UPDATE ON `customers` FOR EACH ROW SET NEW.customers_pw_updated = CURRENT_TIMESTAMP