0

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

网址看起来像

activate.php?confirm=h47H35gGdh7G6dh3j

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

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

我怎样才能做到这一点?

4

2 回答 2

0

检测无激活码:

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

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

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

于 2011-08-29T02:14:59.317 回答
0

我已经设法自己回答了。

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

于 2011-09-01T14:09:14.233 回答