Heim > Artikel > Backend-Entwicklung > PHP-Funktion zur Verifizierung des E-Mail-Versands
Schritt eins: Erstellen Sie eine Datenbank
Kopieren Sie die folgende Datenbank und fügen Sie sie in einen Notizblock ein, erstellen Sie dann eine neue Datenbank in PHPMyAdmin und importieren Sie die folgenden Daten.
– Tabellenstruktur „registered_members“
–
CREATE TABLE „registered_members“ (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL Standard ”,
`email` varchar(65) NOT NULL default ”,
`password` varchar(65) NOT NULL default ”,
`country` varchar(65) NOT NULL default ”,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
–
– Daten in die Tabelle „registered_members“ exportieren
–
–—————————————————––
–
– Tabellenstruktur „temp_members_db“
–
TABELLE „temp_members_db“ ERSTELLEN (
`confirm_code` varchar(65) NOT NULL default ”,
`name` varchar(65) NOT NULL default ”,
`email` varchar(65) NOT NULL default ”,
`password` varchar(15) NOT NULL default ”,
`country` varchar(65) NOT NULL default ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
–
– Tabelle exportieren Die Daten in `temp_members_db`
–
Schritt 2: Datenbankverbindung herstellen
Bitte kopieren Sie den folgenden Code in Ihren Textcompiler und benennen Sie ihn: config.php
< ;?php
$host=“Hostname“; // Hostname
$username=“Benutzername“; // Mysql-Benutzername
$password=“Password“; // Mysql-Passwort
$db_name=“DB name“; // Datenbankname
//Mit Server verbinden und Datenbank auswählen.
mysql_connect(“$host“, „$username“, „ $password“) oder sterben ("Kann keine Verbindung zum Server herstellen");
mysql_select_db("$db_name")or die("DB kann nicht ausgewählt werden");
?>
Schritt 3: Registrierungsseite
Bitte kopieren Sie den folgenden Code in Ihren Texteditor und benennen Sie ihn: signup.php
Schritt 4: Daten in data einfügen und per E-Mail senden
Bitte kopieren Sie den folgenden Code in Ihren Texteditor und benennen Sie ihn: signup_ac.php
include('config.php');
// Tabellenname
$tbl_name=temp_members_db;
// Zufälliger Bestätigungscode
$confirm_code=md5(uniqid(rand ()));
// vom Formular gesendete Werte
$name=$_POST['name'];
$email=$_POST['email'];
$country=$_POST['country'];
// Daten in Datenbank einfügen
$sql=“INSERT INTO $tbl_name (confirm_code, name, email, passwort, land)VALUES('$confirm_code ', '$name', '$email', '$password', '$country')";
$result=mysql_query($sql );
// wenn Daten erfolgreich in die Datenbank eingefügt wurden , Bestätigungslink an E-Mail senden
if($result){
// —————- E-MAIL-FORMULAR SENDEN —— ———-
// E-Mail senden an …
$to=$email;
// Ihr Betreff
$subject=“Ihr Bestätigungslink hier“
// Von
$header=“von: Ihr Name
// Ihre Nachricht
$message=“Ihr Bestätigungslink rn“;
$message.=“Klicken Sie auf diesen Link, um Ihr Konto zu aktivieren rn“;
$message.=“http://www.yourweb.com/confirmation.php?passkey=$confirm_code“;
// E-Mail senden
$sentmail = mail($to,$subject,$message,$header);
}
// wenn nicht gefunden
else {
echo „Ihre E-Mail wurde nicht in unserer Datenbank gefunden“;
}
// wenn Ihre E-Mail erfolgreich gesendet wurde
if($sentmail){
echo „Ihr Bestätigungslink wurde an gesendet Ihre E-Mail-Adresse.“;
}
else {
echo „Bestätigungslink kann nicht an Ihre E-Mail-Adresse gesendet werden“;
}
?>
第五步:验证
请把下面代码复制到你的文本编辑器里面,并命名:confirmation.php
inkl ude('config.php ');
// Passkey, der über den Link erhalten wurde
$passkey=$_GET['passkey'];
$tbl_name1=“temp_members_db“;
/ / Daten aus der Tabelle abrufen, deren Zeile mit diesem Passkey übereinstimmt
$sql1=“SELECT * FROM $tbl_name1 WHERE bestätigt_code ='$passkey'“;
$result1=mysql_query($sql1);
// Bei erfolgreicher Abfrage
if($result1){
// Zählen, wie viele Zeilen diesen Passkey haben
$count=mysql_num_rows($result1);
// if diesen Passkey in unserer Datenbank gefunden, Daten aus Tabelle „temp_members_db“ abrufen
if($count==1){
$rows=mysql_fetch_array($result1);
$name=$rows[ 'name'];
$email=$rows['email'];
$password=$rows['password'];
$country=$rows['country'];
$tbl_name2=“registered_members“;
// Daten, die aus „temp_members_db“ abgerufen werden, in die Tabelle „registered_members“ einfügen
$sql2=“INSERT INTO $tbl_name2(Name, E-Mail, Passwort, Land )VALUES('$name', '$email', '$password', '$country')“;
$result2=mysql_query($sql2);
}
// if Passkey nicht gefunden, Meldung „Falscher Bestätigungscode“ anzeigen
else {
echo „Falscher Bestätigungscode“;
}
// wenn Daten erfolgreich aus der Tabelle „temp_members_db“ in die Tabelle „ verschoben wurden „registered_members“ zeigt die Meldung „Ihr Konto wurde aktiviert“ an und vergessen Sie nicht, den Bestätigungscode aus der Tabelle „temp_members_db“ zu löschen.
if($result2){
echo „Ihr Konto wurde aktiviert“;
// Informationen dieses Benutzers aus der Tabelle „temp_members_db“ löschen, die diesen Passkey hat
$sql3=“DELETE FROM $tbl_name1 WHERE activate_code = '$passkey'“;
$result3=mysql_query($ sql3);
}
}
?>
注意:
如果没有邮箱服务器的,会出现如下面提示之类的东西:
Warnung: mail() [function.mail]: Verbindung zum Mailserver am „localhost“-Port 25 fehlgeschlagen, überprüfen Sie Ihre „SMTP“- und „smtp_port“-Einstellung in php.ini oder verwenden Sie ini_set( ) inE:wampwwwmailverificationsignup_ac.php on line 39
Bestätigungslink kann nicht an Ihre E-Mail-Adresse gesendet werden
不用慌,这说明你的数据已经被写进数据库了。
你可以用以下方法去通过验证:
先复制这个URL到你的浏览器:http://www.你的网站.com/confirmation.php?passkey=
然后到Ihr Konto wurde aktiviert!邮件验证系统就完成了!如果有什么问题的,欢迎随时留言,回以最快的速度解决你的问题。由于时间关系,英文就不做翻译了。