、アカウントを作成した後、あなたはそのアカウントのIDとアクティベーション文字列を含めるべきか、そのアカウントを検証するために、データベースにレコードを追加する必要があります(私は10から15文字のランダムな16進数または英数字の文字列を生成します)。このレコードは、それがアクティブであっても、数値(またはバイナリ)1または0であっても、trueまたはfalseのブール値を持つ必要があります。このアクティベーション文字列とアカウントIDを電子メールのリンクに送信します。
あなたが作成するリンクについては、ページを1つだけ、つまりactivateaccount.phpにすることをお勧めします。 そのファイルの中から、$ _GETパラメータを受け取ることができます']と$ _GET [' account_id ']を使用します。このページから、activationとaccount_idの両方が有効であり、お互いが一致していることを検証します。そうでない場合、スクリプトは、望ましくない攻撃を可能にする可能性があるため、データベースに書き込むことによって不一致を修正しようとするべきではありません。両方が有効で一致している場合は、アカウントが有効化されている可能性があります。
また、Pingbeatが示唆したように、Swiftmailerに行ってください。以前は多くのプロジェクトでこれを使用していましたが、非常に汎用性が高く、高速で、文書化が非常に簡単で、使い方も非常に簡単であることを確認できます。
この提案が役立ちます。
あなたはデータベースを使用していますか?ユーザーデータにフィールドを追加し、その値からリンクを生成することができます。次に、スクリプトを使用して、そのリンクを使用している誰かを、GET値に格納されている値で検証します。メールを自動提出することはそれほど難しくありません。あなたはメールを送信するために何を使用していますか? swiftmailのようなもの?次に、スクリプトを使用して、検証値をsthに変更します。 ACTIVIVEDなどのように。 http://stackoverflow.com/questions/2293684/what-is-the-best-way-to-create-a-random-hash-string – Pingbeat
そうです。私はちょうどPHPスクリプトを使用してメールを送信しています、私はちょうど私の頭の中でそれのためのロジックを取得する必要があります。あなたの言っていることはたくさん意味があります。私はその論理を使って試してみると思います。 – EthanLewis