AW: Double Opi in - Scripte
Wozu der Umweg über eine externe Datei wenn man schon mit einer DB arbeitet?
Bei so einen Newsletter werden ja nicht nur E-Mail erfasst, meist auch andere Angaben wie z.B. Anrede, Vor- und Nachname und ggf. auch PLZ und Ort. Speziell für dieses Opt-In Verfahren kann also in der DB eine zusätzliche Spalte für den ************** angelegt werden. Bei jeder Anmeldung zu einen Newsletter wird auch das Datum mit erfasst, mit diesem können dann später alte Anmeldungen wieder gelöscht werden - aber dazu später.
Eine Person XYZ meldet sich also an. Ein PHP-Script erzeugt ein Passwort-String, wobei es nicht unbedingt MD5 sein muss, ein 12-stelliger Code macht es auch. Der User bekommt nun an seine E-Mail eine Mail mit diesem **************. Zusätzlich wird dem User noch die Funktion Löschen mit eingeräumt. Es kann ja sein, dass ein fremder die E-Mail eingetragen hat. Und um eine Abmahnung vorzubeugen sollte man gleich daran denken.
In der DB gibt es nun ein Status-Feld ( int(1) etc. ) was bei der Anmeldung z.B. noch auf 0 gesetzt ist. Also E-Mails mit Status 0 werden im Newsletter nicht erfasst. Erst wenn der User erfolgreich den Code übermittelt hat, wird der Status auf 1 gesetzt. Erst jetzt kann seine E-Mail im Newsletter benutzt werden. Der eigentliche Code bleibt weiterhin in der DB aktiv. In jeder Mail vom Newsletter muss dem User die Möglichkeit gegeben werden, sich wieder zu löschen. Und hier wird wieder dieser Code benutzt benutzt. Der oben erwähnte ************** ist nun der Löschcode bzw. der User Zugangscode. Nur über diesen erfolgt die Zuordnung von Code <-> User.
Jeder Programmierer weis, dass täglich unzählige Spamer und automatische Scripte ihr Unwesen treiben. Natürlich sind solche Anmeldungen davon nicht verschont. Ob nun Captcha oder nicht, ist ein völlig anderes Thema und nicht Gegenstand von diesem Thread. Damit aber nun alte oder sinnlose Einträge wieder aus der DB gelöscht werden, kommt nun das Anmelde-Datum ins Spiel. Wenn dieses ein gewisses Alter überschritten hat, kann man eigentlich davon ausgehen, dass sich der User nicht mehr anmeldet. Mittels Cronjob, oder speziellen Seiten-Aufruf können über das Datum alte Einträge aus der DB gelöscht werden.
Naja so mal ganz grob erwähnt wie das ganze funktioniert ... wobei die Funktionweise ja von jedem Forum her bekannt sein dürfte.
PS:
Warum macht das Forum aus F r e i s c h a l t c o d e = ************** ?