如何在PHP中创建确认电子邮件?

时间:2010-11-21 07:06:40

标签: php email-validation

我被一个人要求创建一个PHP代码,这是一个更大的ERP软件开发项目的一部分,以便他可以测试我的技能。一旦用户通过表单注册,通过输入姓名,出生日期,电子邮件(我已经通过html完成),有关简单用户身份验证的代码。

html表单的action属性是一个php文件,它由php代码组成,获取表单中的已发布输入,生成验证链接,并通过他/发送给用户她/她已经发过的电子邮件。

我有两个基本问题或疑问:

  1. 如何创建此验证链接?
  2. 一旦用户点击这种类型的链接,PHP如何知道他们这样做了?
  3. 我认为PHP中没有任何事件驱动编程的概念。在这种情况下,PHP如何处理该点击并给出“构象成功消息”?是否需要MySQL数据库,还是有另一种更简单的方法吗?

2 个答案:

答案 0 :(得分:5)

创建用户时,您还将为该用户生成随机字符串。这是他们的授权码。您将使用用户的数据将其存储在数据库中。

然后你要制作你的授权页面(例如,authorize.php)。它需要$ _GET参数'code',或者你想要的任何其他参数(例如,authorize.php?code=theHashYouCreated)。此页面的代码如下所示:

if(!empty($_GET['code']))
{
  /*
   * Get the data from the database by the provided code. 
   * If a result is returned, then remove the authorization 
   * code from the user's record. If no user is found, then 
   * return an error.
   */
}
else
{
  //No code was provided, so we should error.
}

现在,当用户尝试登录时,您还想检查他们的授权代码是否已在数据库中设置。如果是,那么他们还没有验证他们的电子邮件地址。如果不是,那么他们已经验证了它。

答案 1 :(得分:0)

这是一个很好的教程,可以帮助您创建确认电子邮件:

http://www.learnphponline.com/scripts/email-activation-for-php-forms

它涉及创建一个随机生成的激活密钥,该密钥最初将存储在数据库中。密钥应以链接中的GET参数的形式通过电子邮件发送给用户。

单击链接后,将使用数据库中的值检查提交的GET参数。