ホームページ >バックエンド開発 >PHPチュートリアル >PHPメール認証機能
ステップ 1: データベースを作成する
次のデータベースをコピーしてメモ帳に貼り付け、PHPMyAdmin で新しいデータベースを作成し、次のデータをインポートします。
– テーブル構造 `registered_members`
–
CREATE TABLE `registered_members` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL デフォルト ”,
`email` varchar(65 ) NOT NULL デフォルト ”,
`パスワード` varchar(65) NOT NULL デフォルト ”,
`国` varchar(65) NOT NULL デフォルト ”,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT = 1 ;
–
– テーブル `registered_members` のデータをエクスポートします
–
– ——————————————————–
–
– テーブル `temp_members_db の構造`
–
CREATE TABLE `temp_members_db` (
`confirm_code` varchar(65) NOT NULL デフォルト ”,
`name` varchar(65) NOT NULL デフォルト ”,
`email` varchar(65) NOT NULL デフォルト ”,
` パスワード` varchar(15) NOT NULL デフォルト ”,
`country` varchar(65) NOT NULL デフォルト ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
–
– テーブル `temp_members_db` 内のデータをエクスポートします
–
ステップ 2: データベース接続を確立します
次のコードをテキスト コンパイラにコピーし、名前を付けてください: config.php
$host=”Hostname” // ホスト名
$ username ="ユーザー名"; // Mysql ユーザー名
$password="パスワード"; // Mysql パスワード
$db_name="DB 名" // サーバーに接続し、データベースを選択します
mysql_select_db("$db_name")or die("DB を選択できません");
?>
ステップ3: 登録ページ
次のコードをテキスト エディターにコピーし、名前を付けてください:signup.php// テーブル名
$tbl_name=temp_members_db;
// ランダムな確認コード
$confirm_code=md5(uniqid(rand()));
// フォームから送信された値
$name=$_POST['name'];
$country=$ _POST['country'];
//データベースにデータを挿入します
$sql=”INSERT INTO $tbl_name(confirm_code, 名前, メールアドレス, パスワード, 国)VALUES('$confirm_code', '$name', '$email ', '$password', '$country' )";
// データベースにデータが正常に挿入された場合、確認リンクをメールに送信します
if($result){
/ / —————- メールフォームを送信 — ————-
$to=$email;
// 件名
$subject=”ここに確認リンク”;
// From
$header=”from: あなたの名前 <あなたのメールアドレス>”;
// あなたのメッセージ
$message=”あなたの確認リンク rn”;
$message.=”このリンクをクリックして、アカウント rn”;
$message.=”http://www.yourweb.com/confirmation.php?passkey=$confirm_code”;
// メールを送信
$sentmail = mail($to,$subject,$message ,$header);
}
// 見つからない場合
else {
echo “あなたのメールがデータベースに見つかりません”;
}
// メールが正常に送信された場合
if($sentmail){
echo 「確認リンクがあなたのメール アドレスに送信されました。」;
}
else {
echo "確認リンクをメール アドレスに送信できません。";
}
?>
第五步:验证
请把下代网复制到你的文本编辑器里面,并命名:confirmation.php
include('config.php');
// linkから取得したパスキー
$passkey=$_GET ['passkey'];
$tbl_name1=”temp_members_db”;
// このパスキーに一致する行があるテーブルからデータを取得します
$sql1=”SELECT * FROM $tbl_name1 WHEREconfirm_code ='$passkey'”;
$ result1=mysql_query($sql1);
// クエリが成功した場合
if($result1){
// このパスキーを持つ行の数をカウントします
$count=mysql_num_rows($result1);
// これが見つかった場合データベース内のパスキーを使用して、テーブル「temp_members_db」からデータを取得します
if($count==1){
$rows=mysql_fetch_array($result1);
$name=$rows['name'];
$email=$ rows['email'];
$password=$rows['password'];
$country=$rows['country'];
$tbl_name2=”registered_members”;
// “から取得したデータを挿入しますtemp_members_db” をテーブル “registered_members” に追加します
$sql2=”INSERT INTO $tbl_name2(名前, メールアドレス, パスワード, 国)VALUES('$name', '$email', '$password', '$country')”;
$result2=mysql_query($sql2);
}
// パスキーが見つからない場合、メッセージ「間違った確認コード」を表示します
else {
echo "間違った確認コード";
}
// テーブルからデータが正常に移動された場合テーブル「registered_members」に「temp_members_db」を追加すると、「アカウントがアクティブ化されました」というメッセージが表示されます。テーブル「temp_members_db」から確認コードを削除することを忘れないでください
if($result2){
echo 「アカウントはアクティブ化されました」;
// このパスキーを持つテーブル「temp_members_db」からこのユーザーの情報を削除します
$sql3=”DELETE FROM $tbl_name1 WHEREconfirm_code = '$passkey'”;
$result3=mysql_query($sql3);
}
}
?>
注意:
如果無し邮箱サーバー的,会出现如下面提示之类的东西:
警告:mail() [function.mail]:「localhost」ポートでメールサーバーに接続できませんでした25、php.ini で「SMTP」と「smtp_port」の設定を確認するか、E:wampwwwmailverificationsignup_ac.php の 39 行目で ini_set() を使用してください
確認リンクを電子メール アドレスに送信できません
不用急、这说明你的データデータ パッケージはすでに書き込まれています。
は次の方法で認証を回避できます:
この URL をクライアントのブラウザに事前に送信してください: http://www.你の网站.com/confirmation.php?passkey=
その後、あなたのデータページに到達し、passkey= の次の面でconfirm_code の粘着が行われ、回帰、会出 ヒント:あなたのアカウントはアクティブ化されました!
恭喜你了!你的邮件验证システム统完了しました!結果があれば何でも、時間の関係で、和訳は翻訳されませんでした。