如何实现activate.php脚本?

时间:2011-08-29 02:09:57

标签: php mysql get activation user-registration

我正在尝试创建一个脚本,用于从注册电子邮件中发送给他们的变量验证(激活)用户帐户。

网址看起来像

activate.php?confirm=h47H35gGdh7G6dh3j

我会$_GET["confirm"]并针对数据库进行检查,但我不知道如何捕获我可能遇到的所有错误,例如:

  • 用户已激活
  • 激活码错误
  • 根本没有激活码等

我该怎么做?

2 个答案:

答案 0 :(得分:0)

要检测无激活码:

if (!isset($_GET['confirm']) || empty($_GET['confirm'])) {
    die('Error: an activation code is required.');
}

要检测已激活的用户,请执行数据库查找以激活用户ID($uid),然后检入数据库以查看用户是否已被激活。如果您想避免额外的查找,并且不介意运行额外的更新(并且您没有更新类似激活时间的内容),则可以运行更新,然后检查受影响的行数($stmt->rowCount()在PDO中)。如果它为零但没有数据库错误,则只是用户已被激活,您可以抛出错误。

如果在查找确认代码时从数据库返回空集(零行),则激活码是错误的。

答案 1 :(得分:0)

我自己设法回答了。

基本上我从$ _GET数组中提取了值并使用该值来查看它是否存在于数据库中,如果确实存在,那么我使用另一个if语句来查看该用户的状态是否已设置为“active”,如果是这样,它不会做任何事情,但如果帐户没有活动,那么它会将其设置为活动并确认。