ユーザー登録機能は、最新のWebサイトの不可欠な部分です。ユーザーが提供するメールアドレスが有効かつ真実であることを確認するために、ユーザーの身元は通常、検証メールを送信することで確認されます。この記事では、この機能をPHPで実装する方法を紹介し、開発者が迅速に開始できるように実用的なコード例を提供します。
メールの送信は、SMTPサーバーによって異なります。 PHPMailerライブラリを使用して、メールの送信を完了することをお勧めします。 Composerを介してPHPMailerを最初にインストールします。
Composerにはphpmailer/phpmailerが必要です
インストールが完了したら、自動読み込みファイルをプロジェクトに導入します。
「ベンダー/autoload.php」が必要です。
次に、サーバーアドレス、ポート、ユーザー名、パスワードなどを含むSMTPサーバーパラメーターを構成し、特定の構成は使用されるメールサービスプロバイダーに基づいています。
ユーザーが登録フォームを提出する場合、ユーザー名や電子メールなど、最初にユーザーが入力した情報を受信します。
$ username = $ _post ['username']; $ email = $ _post ['email'];
後続のメールボックス検証のために、一意の検証識別子を生成します。
$ token = bin2hex(random_bytes(16));
データベースにユーザー情報と検証識別子を保存して、検証中に検索と更新を容易にします。
検証識別子を含むリンクを構築すると、ユーザーはクリック後に電子メールの確認を完了できます。
$ vilificationlink = "http://yourdomain.com/verify.php?token="。 $トークン;
PHPMailerを使用して電子メールを送信し、検証リンクが電子メールボディにあります。
$ mail = new phpmailer \ phpmailer \ phpmailer(); $ mail-> sismtp(); $ mail-> host = 'smtp.example.com'; $ mail-> port = 587; $ mail-> smtpsecure = 'tls'; $ mail-> smtpauth = true; $ mail-> username = 'username@example.com'; $ mail-> password = 'password'; $ mail-> setfrom('from@example.com '、' Your Site '); $ mail-> addaddress($ email、$ username); $ mail-> subject = 'メールアドレスを確認してください'; $ mail-> body = '二流のリンクをクリックして、メールアドレスを確認してください:'。 $ vidificationlink; if(!$ mail-> send()){ Echo 'メール配信は失敗しました。 '; エコー 'エラーメッセージ:'。 $ mail-> errorinfo; } それ以外 { Echo '検証メールが送信されました。確認してください。 '; }
ユーザーが検証リンクをクリックすると、検証ページ(verify.php)は、URLでトークンパラメーターを取得して検証プロセスを完了します。
$ token = $ _get ['token'];
データベースをクエリトークンに従って照会し、対応するユーザーを確認し、検証する電子メール検証ステータスを更新し、検証結果をユーザーに表示します。
上記の手順を通じて、開発者は、ユーザーがPHPプロジェクトに登録したときに電子メール検証メールを送信するという完全な機能を実現できます。これにより、ユーザー登録のセキュリティが向上するだけでなく、無効な電子メールの登録を効果的に回避し、ウェブサイトの管理効率とユーザーエクスペリエンスを改善します。