PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Bestätigungs email ! (http://www.selfphp.de/forum/showthread.php?t=9921)

akasa 05.03.2005 12:03:10

Bestätigungs email !
 
Halli hallo,
ich wollte mal wissen ob mir vielleicht jmd. eine anleitung zum versenden von bestätigungsmails geben kann ! also sowohl alles was zum email versand gehört und auch noch das mit dem bestätigungslink, der da drinnen ist !
THX

xabbuh 05.03.2005 15:55:21

AW: Bestätigungs email !
 
Zum Versenden von E-Mails benötigst du die Funktion [func]mail()[/func]. Wenn du E-Mails mit Anhang etc. versenden möchtest, solltest du dir das pear Paket PEAR::Mail_Mime anschauen.
Bestägigungsmails funktionieren nach dem Prinzip, dass du für einen User bei dessen Registrierung einen zufälligen Schlüssel kreierst und diesen sowie die id des User als Link per Mail übermittelt. Das könnte dann so aussehen: http://domain.tld/activate.php?id=3&key=dadjkj24324jASA
In der Datenbanktabelle existieren also mindestens 4 Spalten: id, username, active, key
Die Spalte active wird standardmäßig auf 0 gesetzt, was bedeutet, dass dieser Benutzer noch nicht aktiviert ist. In der Spalte key wird der Schlüssel für den Benutzer gespeichert, der sich soeben registriert hat.
Über die Datei active.php kann sich ein User also mit dem korrekten Schlüssel und seiner id freischalten.
Der Quelltext könnte vereinfacht so aussehen:
PHP-Code:

<?php
    $id 
= (int)mysql_real_escape_string($_GET['id'], $conn);
    
$key mysql_real_escape_string($_GET['key'], $conn);

    
$sq "UPDATE
                table
            SET
                active = 1
            WHERE
                id = $id AND
                key = '$key'"
    
$result mysql_query($sql);
?>

Anschließend kannst du mit der Funktion [func]mysql_affected_rows()[/func] prüfen, ob ein Datensatz aktiviert wurde.

akasa 05.03.2005 20:20:56

AW: Bestätigungs email !
 
also theoretisch könnte ich den benutzername eigentlich einfach mit md5 verschlüsseln und das als aktivierungslink nehmen.... ,darf halt nur keiner wissen....

xabbuh 05.03.2005 23:39:47

AW: Bestätigungs email !
 
Zitat:

Zitat von akasa
also theoretisch könnte ich den benutzername eigentlich einfach mit md5 verschlüsseln und das als aktivierungslink nehmen.... ,darf halt nur keiner wissen....

Besser wäre es hier wohl, den Wert von [func]time()[/func] zu nehmen und dann diesen vielleicht noch mit [func]md5()[/func] zu verschlüsseln.

akasa 06.03.2005 01:09:40

AW: Bestätigungs email !
 
ah ok danke danke.... kann man irgendwie den emailversand beschleunigen,weil es brauch ca. 5min bis die email ankommt, oder liegt das am server ?

|Coding 06.03.2005 01:25:36

AW: Bestätigungs email !
 
Zitat:

Zitat von akasa
ah ok danke danke.... kann man irgendwie den emailversand beschleunigen,weil es brauch ca. 5min bis die email ankommt, oder liegt das am server ?

php hat mit deinem email server nichts am hut, maximal was mit deinem smtp. wenn die mail lange brauch bis die ankommt, wird deine mail wohl in deinem mail-verteiler hängen und auf zustellung warten. für den ist aber dein provider verantwortlich.

akasa 06.03.2005 12:33:02

AW: Bestätigungs email !
 
ok, dann fin ich mich mal damit ab, gibt es eine funktion, mitder ich die in der db festgelegte mailid, die generiert wird zum freischalten des accounts nach 30min ohne anmeldung zu löschen ? und den account gleich mit ?

xabbuh 06.03.2005 12:59:25

AW: Bestätigungs email !
 
Entweder benutzt du einen Cronjob oder du führst bei jedem Aufruf der Seite eine Abfrage aus, mit der alle inatkvien Datensätze die älter als 30 Minuten sind, gelöscht werden.

akasa 06.03.2005 13:11:49

AW: Bestätigungs email !
 
ok,
so, ich arbeite mich nach vorne der login und ist soweit fertig, jezz bräuchte ich nur noch nen tipp wie ich die Datenbank absuchen kann ob ein neuer user eine bereits exestierende email adresse benuzt hat !

xabbuh 06.03.2005 13:23:37

AW: Bestätigungs email !
 
Benutze die MySQL-Funktion COUNT() um die Anzahl der Datensätze zu ermitteln. Die Abfrage schränkst du ein, in dem du die gewünschte E-Mailadresse in der WHERE-Klausel der Abfrage benutzt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:13:30 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.