ホームページ  >  記事  >  バックエンド開発  >  アカウントを有効にするためのPHPユーザー登録メール機能

アカウントを有効にするためのPHPユーザー登録メール機能

怪我咯
怪我咯オリジナル
2017-06-16 11:11:431447ブラウズ

Web サイトでアカウントを登録すると、通常、アカウントをアクティブ化するためのクリックリンクが記載されたメールが届きます。この記事では、主に PHP メール アクティベーション アカウントの実装コードを紹介します。興味のある方は、それについて学ぶことができます。ウェブサイト アカウントを開設すると、通常、アカウントをアクティブ化するためのリンクが記載されたメールが届きます。今日はその方法を紹介します。

前提条件

アカウントを登録するとき、通常、ID、ユーザー名、パスワード、電子メールまたは携帯電話番号をユーザーテーブルに記録します。また、アカウントがアクティブ化されているかどうかを示すフィールドもあります。 activation varchar(50) であると仮定します。登録時には、通常、アクティベーション コードが生成され、アクティベーション コードがアクティベーション フィールドに挿入されます。 $activation_key=bin2hex(openssl_random_pseudo_bytes) を使用できます。 (16)); を生成してフィールドに挿入します。

activation varchar(50) 注册时一般都会生成一个激活码,并且把激活码插入activation字段,我们可以使用$activation_key=bin2hex(openssl_random_pseudo_bytes(16)); 来生成,并且把它插入字段。

在链接中保存激活信息

既然我们点击了邮件里的链接后,就激活了账户,那么说明这个链接里,必然储存了激活信息。而它应该储存哪些信息呢,首先,必须有激活码,还有用户注册时的邮箱或者id,我们这里用邮箱。例如下面这个链接。


复制代码 代码如下:


$message.="Activate";

$email使我们注册时的邮箱,我们用urlencode()来编码一下,将字符串用于 URL 的请求部分,$activation_keyアクティベーション情報をリンクに保存します

メール内のリンクをクリックしてアカウントをアクティベートしたため、アクティベーション情報をこのリンクに保存する必要があることを意味します。どのような情報を保存する必要がありますか? まず、登録時にアクティベーション コードとユーザーの電子メールまたは ID が必要です。たとえば、以下のリンクです。

コードをコピー コードは次のとおりです:


$message。 ="< ;a href="." rel="external nofollow" http://www.XXXXX.com/activate.php?email=".urlencode($email)."&key=$activation_key"."> Activate";


$email は、登録時に使用したメール アドレスです。urlencode() を使用してエンコードし、リクエストの文字列を使用します。 URL の部分 $activation_key は、サーバーを使用してこの電子メールにアクティベーション電子メールを送信します。これは電子メール クライアントにハイパーリンクとして表示され、次のことを要求します。クリックすると、電子メールとキーが activate.php ファイルに送信され、検証とアカウントのアクティブ化が開始されます。

activate.php の情報を確認します

🎜 URL リクエストを使用して、ユーザーの電子メールとアクティベーション コードを activate.php に渡します。これで、ユーザーを確認するための比較のためにデータベース内の元の情報を取得するだけで済みます。最初のステップは、アクティベーション コードを user テーブルに挿入することです。アクティベーションが有効になり、次の手順に進みます🎜🎜この記事では、この問題の解決策のみを説明します。完全なユーザー登録、アクティベーション、ログイン、および電子メールを送信するサーバーの構成も行う必要があります🎜

以上がアカウントを有効にするためのPHPユーザー登録メール機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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