我正在尝试创建一个脚本,用于从注册电子邮件中发送给他们的变量验证(激活)用户帐户。
网址看起来像
activate.php?confirm=h47H35gGdh7G6dh3j
我会$_GET["confirm"]
并针对数据库进行检查,但我不知道如何捕获我可能遇到的所有错误,例如:
我该怎么做?
答案 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”,如果是这样,它不会做任何事情,但如果帐户没有活动,那么它会将其设置为活动并确认。