如何实现一个activate.php脚本



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

url看起来像

activate.php?confirm=h47H35gGdh7G6dh3j

和我将$_GET["confirm"]并根据数据库检查它,但我不知道如何捕获我可能遇到的所有错误,例如:

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

我该怎么做?

检测没有激活码:

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

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

激活码是错误的,如果你得到一个空集(零行)从数据库返回时查找确认码。

我自己已经回答好了。

基本上,我从$_GET数组中提取值,并使用该值来查看它是否存在于数据库中,如果它存在,然后我使用另一个if语句来查看该用户的状态是否已经设置为"活动",如果是,它不会做任何事情,但如果帐户不活跃,那么它将设置为活动并确认这一点

最新更新