ホームページ > バックエンド開発 > PHPチュートリアル > ユーザーをアクティブ化するためのphp、電子メール認証を実装する方法

ユーザーをアクティブ化するためのphp、電子メール認証を実装する方法

WBOY
リリース: 2016-06-13 13:36:34
オリジナル
1222 人が閲覧しました

電子メールでユーザーを検証およびアクティブ化するために php を実装するにはどうすればよいですか?
つまり、電子メールを使用して実装し、ユーザーをアクティブ化するために電子メールを送信する方法は?
私のプログラムはすでに電子メール クラスを使用しています。
パスワードを取得するために使用されます。
しかし、登録したい場合は、ユーザーをアクティブ化するためにユーザーを確認する電子メールを追加する必要があります。
多くのプログラムが付属していることは、登録時にプログラムによって自動的に生成され、ユーザーの電子メールに送信されることを誰もが知っているはずです。
ユーザーが URL リンクをクリックすると、ユーザーはアクティブ化されます。
しかし、それを達成する方法を知りたいですか?
URLアドレスを自動生成する手順が出来ず、検証も出来ないのですが、ソースコードがあれば使えるか分かりません!
URL アドレスを自動的に生成する方法を誰か教えてください。


コード例を提示していただくか、私が述べた機能を備えたオープンソース プログラムを提供していただければ幸いです。

ありがとうございます。

-----解決策---------
現時点ではサンプルコードはありません。uhome、discuzなど、あなたが言及した機能を備えたオープンソースプログラムがたくさんあります。


実際、原理は非常に単純です。URL は自動的に生成できないと述べました。まず、URL は 2 つの部分に分かれています。
最初の部分は検証アドレスです。ユーザー ID を識別するパラメータ (例:http://www.xxx.com/active.php?uid=1
) 2 番目の部分は、実際には検証に使用される文字列です (例: authcode=asdad1f323ff43fまとめて http://www .xxx.com/active.php?uid=1&authcode=asdad1f323ff43f

最初の部分は、あなたが作成した検証スクリプトです。住所はわかりますか?
2 番目の部分はランダムに生成された文字列ではないでしょうか?式: md5 (独自のドメイン名 + タイムスタンプ + 検証済みのユーザー名) を使用して、この文字列を生成できます。もちろん、文字列が規則的でなく、すぐに推測でき、繰り返されない限り、文字列を組み合わせる方法を自分で定義できます。
とてもシンプルですよね?


いつ生成し、いつ検証するかについては、次のように設計できます:
ユーザー テーブルに 2 つのフィールドを追加できます: 1 (bool isActive) ユーザーがアクティブ化されているかどうか、デフォルトは false です。 2 (文字列 authcode) 一時的なアクティベーション コード。
ユーザーが登録するか、アクティベーション ボタンをクリックすると、次のいずれかのスクリプトを実行します。
1 アクティベーション コードを生成します。これは、上で説明した方法です。
2 このアクティベーション コードをユーザー テーブルの authcode フィールドに保存します。
3 完全なアクティベーション アドレスを電子メールでユーザーのメールボックスに送信します。
4 スクリプトは、リクエストを受信すると、2 つのパラメーターを取得し、ユーザー テーブルで uid=1 のユーザーを検索します。データベース内でそうであれば、検証に合格し、update isActive フィールドが true にクリアされ、authcode フィールドが空に更新されます。


もちろん、重複した検証コードの生成や他人の推測を避けるために、認証コードにタイムアウトを設定できます。これを行うには、さまざまな方法があります。タイムスタンプとして、time()+3600 などのフィールドを使用します。確認すると、このタイムスタンプ内にあるかどうかを確認することもできます。この種のものをキャッシュまたはメモリに置くこともできます。これで良くなるでしょう。


また、今日はすべての新規登録ユーザーに電子メールのアクティベーションを必要とするかもしれませんが、明日はその必要がないかもしれません。電子メールによるアクティベーションが必要かどうかを制御するために使用されます。まず、この値がtrueと判定された場合は、登録されている全ユーザのisActiveがfalseとなり、それ以外の場合はtrueとなります。

------解決策------------------さらに、顧客にメールを送信することも検討してください


メールが受信できない状況も考慮してください。 100% の到着率を保証することはできません

。指定された電子メール アドレスに電子メールを送信するには、お客様に電子メール アドレスも提供する必要があります。

プログラムはメーリング リストを読み取ります。はメールボックス A からのメールであり、登録ユーザーがこのメール アドレスを使用すると、検証は A

に合格します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート