ホームページ  >  記事  >  バックエンド開発  >  PHPメール認証機能

PHPメール認証機能

巴扎黑
巴扎黑オリジナル
2016-11-24 11:46:451147ブラウズ

ステップ 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_connect(" host", "$username", "$password")or die("サーバーに接続できません");

mysql_select_db("$db_name")or die("DB を選択できません");

?>

ステップ3: 登録ページ

次のコードをテキスト エディターにコピーし、名前を付けてください:signup.php










登録


















< /tr>

< td>




ユーザー名:
メール< /td>
:
パスワード:
:




ステップ 4: データをデータに挿入し、メールで送信します

以下のコードをコピーしてください。テキスト エディターに移動し、signup_ac という名前を付けます。 php

include('config.php');

// テーブル名
$tbl_name=temp_members_db;

// ランダムな確認コード
$confirm_code=md5(uniqid(rand()));

// フォームから送信された値
$name=$_POST['name'];

$email=$_POST['email'];

$country=$ _POST['country'];

//データベースにデータを挿入します
$sql=”INSERT INTO $tbl_name(confirm_code, 名前, メールアドレス, パスワード, 国)VALUES('$confirm_code', '$name', '$email ', '$password', '$country' )";

$result=mysql_query($sql);


// データベースにデータが正常に挿入された場合、確認リンクをメールに送信します
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 の粘着が行われ、回帰、会出 ヒント:あなたのアカウントはアクティブ化されました!

恭喜你了!你的邮件验证システム统完了しました!結果があれば何でも、時間の関係で、和訳は翻訳されませんでした。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。