Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Scripts » Clanletter / Newsletter » E-mail Bestätigung    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
comkomweb
Mitglied
Neuling


Dabei seit: 15.05.2011
Herkunft: keine Angabe
Posts: 2
     E-mail Bestätigung Zitat | Bearbeiten

Wie kann man wenn sich einer mit seiner email adresse registiert, dass dieser einen Bestätigungslink geschickt bekoomt und erst wenn er diesen bestätigt, dass dann die email adresse in der Datenbank aufgenommen wird...??

Bitte um euere Hilfe!!!


Danke


15.05.2011, 20:11 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

Hallo
der Eintrag ist schon etwas älter aber habe soeben das selbe Problem gehabt und hoffentlich behoben. Ich möchte hier kurz schreiben wie meine Lösung aussieht.

Beim Anmelden über das Formular werden die Daten (Name und Email) an die Datei save.php übergeben.
In save.php gibt es zwei "Bereiche" einmal für Austragen und einmal für Eintragen. im Bereich Eintragen habe ich einen Code eingestellt um automatisch eine Mail an die soeben eingetragene Mailadresse zu senden. Mit dieser übermittle ich einen Bestätigungslink.

Nun was macht der Link?
Hierzu muss geschaut werden wie die Mailadressen gespeichert werden. Als SQL-Tabelle. Ich habe dort eine Spalte hinzugefügt und diese "Bestätigung" genannt (der Name ist variabel). Beim Eintragen wird diese immer mit einer 0 ausgefüllt. Nun kommt der Link ins Spiel. der Link aus der Email schaut wie folgt aus:
http://domain.de/datei.php?mail=$email
(mit $email übermittelt man die soeben eingetragene Email)
die so aufgerufene PHP-Datei übernimmt dann die Mailaddresse.
mit dem SQL Befehl
 PHP 
1:
UPDATE `cl1_emails` SET `best├Ątigung`='1' WHERE `email`= '".$mail."'";

sucht die PHP-Datei die Emailadresse aus der Tabelle und ändert das dazugehöriges Feld bei "Bestätigung" in "1" um. So weit bringt uns dass noch nichts aber nun kommt eine zweite PHP-Datei hinzu.
Diese wird durch einen Cronjob in einem festgelegten Intervall aufgerufen. Beim Aufrufen der Datei löscht diese alle Einträge bei denen das Feld "Bestätigung" noch "0" ist.
Somit sind alle unbestätigten Mailaddressen gelöscht.

Also kurz zusammengefasst:
Eintragen->Bestätigungslink senden->PHP-Datei1 aufrufen->Bestätigungsfeld in "1" geändert->PHP-Datei2 regelmäßig aufrufen ->Einträge mit Bestätigung "0" werden gelöscht.

FERTIG

Ich hoffe ich habe es nicht zu verwirrend beschrieben.

Nachteile sind jedoch:
-Der Bestätigungslink hat ein "Ablaufdatum"
-Bis zu diesem "Ablaufdatum" erhalten auch unbestätigte Mailaddressen noch eine Newsletter (sofern in der Zeit einer geschrieben wird.) :-(
Für meinen Zweck reicht es mir ab so dass ich einmal am Tag die "falschen" Mailaddressen lösche in der Email schreibe ich auch dazu dass der Link nur eine gewisse Zeit gültig ist.)

Hoffe ich habe dem ein oder anderen damit etwas geholfen. Ich muss noch dazusagen dass ich es noch nicht auf lange Zeit getestet habe.

sollte jemand eine bessere / andere Lösung haben würde ich mich freuen diese kennen zu lernen
Vielleicht kommt auch in einer späteren Version eine entsprechende Funktion hinzu??

liebe Grüße hier ins Forum
weigi




15.12.2012, 19:10  
weigi
Mitglied
Neuling


Dabei seit: 15.12.2012
Herkunft: keine Angabe
Posts: 6
      Zitat | Bearbeiten

Hallo
Ich hätte nicht als Gast posten sollen
wenn jemand noch ne fragen dazu hat kann er sich an mich wenden oder auch hier im Forum schreiben da wir einem gut geholfen :-)
danke
lg
weigi


15.12.2012, 19:13 Profil | PM | E-Mail  
weigi
Mitglied
Neuling


Dabei seit: 15.12.2012
Herkunft: keine Angabe
Posts: 6
      Zitat | Bearbeiten

Hallo
nun habe ich doch noch eine Ergänzung.
Einmal selbst angemeldet kann man den in vorherigen Posting beschriebenen Bestätigungslink ganz einfach "fälschen" Daher habe ich mir gedacht man benötigt noch etwas individuelles und klar was gibt es besser als rand() also eine Zufallszahl.
Nun habe ich eben noch eine Spalte mehr eingefügt in der Datei save.php wird nun nicht nur der Name und die email in die SQL Tabelle eingetragen sondern auch eine Zufallszahl. Diese Zufallszahl wird nun mit dem Bestätigungslink übergeben. Die php Datei 1 fragt nun nicht nur nach der Mailaddresse sondern auch nach der Zufallszahl wenn beides übereinstimmt wird das Feld Bestätigung von "0" in "1" umgewandelt.
Wer jetzt noch den Bestätigungslink "fälschen" kann na dann Respekt ^^.

so nun ist es hoffentlich sicher :-)
lg
weigi


15.12.2012, 23:46 Profil | PM | E-Mail  
bondscoach84
Mitglied
Neuling


Dabei seit: 10.04.2014
Herkunft: keine Angabe
Posts: 2
      Zitat | Bearbeiten

An welcher Stelle wird die Bestätigungsemail verschickt?
Ich habe in der Datei save.php die Funktion send_eintragen gefunden. Aber ich habe nicht die Stelle gefunden an der sie ausgeführt wird


10.04.2014, 12:32 Profil | PM | E-Mail  
bondscoach84
Mitglied
Neuling


Dabei seit: 10.04.2014
Herkunft: keine Angabe
Posts: 2
      Zitat | Bearbeiten

[quote]Orginal von bondscoach84
An welcher Stelle wird die Bestätigungsemail verschickt?
Ich habe in der Datei save.php die Funktion send_eintragen gefunden. Aber ich habe nicht die Stelle gefunden an der sie ausgeführt wird
[/quote]

Okay das habe ich gefunden :-)

Ich habe die Tabelle mit den E-Mail Adressen nun um ein weiteres Feld erweitert. In diesem Feld wird gespeichert ob die E-Mail bestätigt worden ist. Wo findet denn der Versandt der E-Mails statt? Dort müsste ich diese Abfrage ja erneut stellen...


10.04.2014, 14:17 Profil | PM | E-Mail  
weigi
Mitglied
Neuling


Dabei seit: 15.12.2012
Herkunft: keine Angabe
Posts: 6
      Zitat | Bearbeiten

Hallo

Ich habe zwei Felder in der SQL Tabelle hinzugefügt. Beim eintragen wird die Emailadresse in ein neues Feld zwischengespeichert.
der Benutzer bekommt dann einen Link zugesendet.
Die Datei die aufgerufen wird kopiert die Mailadresse in das Feld email kopiert.
Beim versenden der Mails muss daher keine Überprüfung stattfinden. (Nicht bestätigt --> keine Mailaddresse eingetragen?)

Gruß
weigi


13.09.2014, 17:21 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Scripts » Clanletter / Newsletter » E-mail Bestätigung   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz