我正在尝试创建一个脚本,该脚本从在注册电子邮件中发送给他们的变量中验证(激活)用户帐户。
网址看起来像
activate.php?confirm=h47H35gGdh7G6dh3j
我会$_GET["confirm"]
对照数据库检查它,但我不知道如何捕捉我可能遇到的所有错误,例如:
- 用户已激活
- 激活码错误
- 根本没有激活码等
我怎样才能做到这一点?
我正在尝试创建一个脚本,该脚本从在注册电子邮件中发送给他们的变量中验证(激活)用户帐户。
网址看起来像
activate.php?confirm=h47H35gGdh7G6dh3j
我会$_GET["confirm"]
对照数据库检查它,但我不知道如何捕捉我可能遇到的所有错误,例如:
我怎样才能做到这一点?
检测无激活码:
if (!isset($_GET['confirm']) || empty($_GET['confirm'])) {
die('Error: an activation code is required.');
}
要检测用户是否已激活,请在数据库中查找要激活的用户 ID ( $uid
),然后检查数据库以查看用户是否已激活。如果您想避免额外的查找并且您不介意运行额外的更新(并且您没有更新激活时间之类的内容),您可以运行更新,然后检查有多少行受到影响($stmt->rowCount()
在 PDO 中)。如果该值为零但没有数据库错误,则只是用户已被激活,您可以抛出错误。
如果您在查找确认代码时从数据库返回一个空集(零行),则激活代码错误。
我已经设法自己回答了。
基本上我从 $_GET 数组中提取值并使用该值来查看它是否存在于数据库中,如果存在,那么我使用另一个 if 语句来查看该用户的状态是否已经设置为“活动”,如果是,它不会做任何事情,但如果该帐户未激活,那么它会将其设置为激活并确认这一点。