ホームページ >バックエンド開発 >PHPチュートリアル >メールの確認でサインアップフォームをコーディングする方法

メールの確認でサインアップフォームをコーディングする方法

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-27 09:36:15278ブラウズ

How to Code a Signup Form With Email Confirmation

このチュートリアルは、ユーザーをデータベースに追加するユーザー登録フォームを作成し、ユーザーがクリックしてアカウントをアクティブにする必要があるという確認メールを送信するように導きます。

登録フォームをゼロから作成します

このセクションでは、カスタム登録フォームをゼロから構築する際に段階的に説明します。まず、チュートリアルをフォローできるように、ダウンロードできるすべてのコードファイルを添付しました。

重要なファイルを簡単に見てみましょう:

  • :これは、登録フォームの構築と表示に使用されるメインファイルです。また、フォームの提出も処理します。 index.php
  • :確認部分の処理に使用されます。 confirm.php
  • :これは、HTML電子メール本文の構築に使用されるHTMLファイルテンプレートです。 signup_template.html
  • :これは、プレーンテキストメール本文の構築に使用されるプレーンテキストファイルテンプレートです。 signup_template.txt
  • :データベース接続情報が含まれています。 inc/php/config.php
残りのファイルは補助ファイルです。

PHPMyAdminまたはMySQLデータベースを管理し、新しいデータベースを作成するために使用するプログラムを開きます。あなたはそれを好きなように名前を付けることができますが、私はそれを

に名前を付けます。次に、ユーザー情報と確認情報を保存するスキーマを作成する必要があります。これを行うには、2つのテーブルを作成します:email_signupusersconfirm

<code class="language-sql">CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `password` varchar(128) NOT NULL default '',
  `email` varchar(250) NOT NULL default '',
  `active` binary(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
上記のmysqlステートメントは、

という名前のテーブルを作成します。 users

  • :ユーザーの一意の識別子として使用される整数シーケンス。これはidとして定義されます。つまり、最大11ビット整数を保持できます。 int(11)
  • :各ユーザーのユーザー名を保存する文字列列。これはusernameとして定義されます。つまり、最大50文字を節約できます。 varchar(50)
  • :各ユーザーのハッシュパスワードを保存する文字列列。これはpasswordと定義されています。つまり、最大128文字を保持できることを意味します。 varchar(128)
  • :各ユーザーのメールアドレスを保存する文字列列。これはemailと定義されています。つまり、最大250文字を節約できます。 varchar(250)
  • :ユーザーのアカウントがアクティブ化されているかどうかを保存するバイナリ列。これはactiveとして定義されます。つまり、バイト値を保存し、0は不活性で、1はアクティブ化されます。 binary(1)

表:confirm

<code class="language-sql">CREATE TABLE `confirm` (
  `id` int(11) NOT NULL auto_increment,
  `userid` varchar(128) NOT NULL default '',
  `key` varchar(128) NOT NULL default '',
  `email` varchar(250) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
上記のmysqlステートメントは、

という名前のテーブルを作成します。 confirm

  • id:レコードを確認するための一意の識別子として使用される整数シーケンス。これはint(11)として定義されます。つまり、最大11ビット整数を保持できます。
  • userid:確認レコードに関連付けられたユーザーIDを保存する文字列列。これはvarchar(128)と定義されています。つまり、最大128文字を保持できることを意味します。
  • key:ユーザーのメールアドレスに送信された確認キーを保存する文字列列。これはvarchar(128)と定義されています。つまり、最大128文字を保持できることを意味します。

mysqliを使用してmysqlデータベースに接続します

このセクションでは、MySQLI拡張機能を使用してMySQLデータベースに接続する方法について説明します。

ファイルのコードをすばやく抽出して理解させてください。 inc/php/config.php

<code class="language-sql">CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `password` varchar(128) NOT NULL default '',
  `email` varchar(250) NOT NULL default '',
  `active` binary(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
最初に、新しいMySQLI接続を作成します。次に、接続が成功しているかどうかを確認します。接続が失敗した場合、エラーメッセージが表示されて終了します。

フォーム提出処理

このセクションでは、フォームの提出の仕組みを説明します。

...(ここでは、いくつかのコードが省略されています。元のテキストのコードのこの部分は長く、擬似オリジナルの目標と矛盾しているため、コアロジックを維持してください)...

主なロジックは、ユーザー入力を安全に処理する(たとえば、

関数を使用してSQLインジェクションを防ぐ)、ユーザー入力が完了していることを確認し、ユーザーデータをデータベースに挿入し、確認キーを生成し、確認メールを送信します。パスワードはMD5関数を使用してハッシュされ、より安全な暗号化方法を使用することをお勧めします。 mysqli_real_escape_string

フォーム確認

を表示します

ファイルから重要なコードスニペットを抽出して、それがどのように機能するかを理解しましょう。 confirm.php

このコードは、主に、URLパラメーターに一致するデータベースにメールボックスと確認キーがあるかどうかをチェックします。存在する場合は、ユーザーステータスを更新してアクティブ化し、確認レコードを削除します。
<code class="language-sql">CREATE TABLE `confirm` (
  `id` int(11) NOT NULL auto_increment,
  `userid` varchar(128) NOT NULL default '',
  `key` varchar(128) NOT NULL default '',
  `email` varchar(250) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

結論

このチュートリアルはここで終了します。

このチュートリアルでは、さまざまな側面をカバーしています。メールを処理するためのサードパーティスクリプトをダウンロードして含め、Simple Form検証を実装し、電子メールをスタイルするためのシンプルなテンプレートシステムを作成しました。 MySQLに慣れていない場合は、最も一般的な3つの機能をカバーしているため、より高度なチュートリアルを簡単に完了できるはずです。

以上がメールの確認でサインアップフォームをコーディングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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