PHP帐户激活逻辑
我写PHP是为了激活一个用户的帐户。。。。。。 代码经过过滤、消毒、密码加密,我使用PDO存储数据。。。。 我有一个标题重定向一旦数据被存储,引导用户点击他们注册的电子邮件地址上的激活链接 一切正常,我使用了一个PDO RowCount()来告诉重定向继续并运行,但我在MySql数据库中添加了一个哈希列,以帮助激活链接,然后被查询以实际激活帐户,因此已经填充了RowCount,重定向将绕过表单本身运行。因此,我编写了一些代码来启用重定向功能,它确实可以,但是它仍然在绕过表单本身。。。。。 我需要这段代码来运行头重定向,也就是说数据库已经被表单填充,但是我需要它停止绕过表单本身,只是继续重定向 下面的代码…根据要求提供更多代码PHP帐户激活逻辑,php,Php,我写PHP是为了激活一个用户的帐户。。。。。。 代码经过过滤、消毒、密码加密,我使用PDO存储数据。。。。 我有一个标题重定向一旦数据被存储,引导用户点击他们注册的电子邮件地址上的激活链接 一切正常,我使用了一个PDO RowCount()来告诉重定向继续并运行,但我在MySql数据库中添加了一个哈希列,以帮助激活链接,然后被查询以实际激活帐户,因此已经填充了RowCount,重定向将绕过表单本身运行。因此,我编写了一些代码来启用重定向功能,它确实可以,但是它仍然在绕过表单本身。。。。。 我需要
try{
$checkEmail = $db->prepare('SELECT email FROM users WHERE email = :email');
$checkEmail->bindParam(':email', $clean['email']);
$checkEmail->execute();
$result = $checkEmail->fetch();
print_r($result);
} catch(PDOException $e) {
$e->getMessage();
}
if ($result[0] === $clean['email']){
header('Location:verifyemail.php');
}
$clean['email']是编程逻辑中的当前电子邮件地址。但是PHP似乎已经有了一些价值,因此表单被绕过了。我可能完全误解了这个代码片段的意图,但是如果当页面第一次加载时,
$clean['email']
是NULL
(因为没有处理表单输入),我认为,如果
条件总是正确的:
NULL=NULL
为false)$result[0]
未定义,因为SQL查询未返回任何行$result[0]
和$clean['email']
都计算为PHP NULL,因此是相同的[Update,from comment]我认为这种方法适用于除空输入以外的所有情况;您只需检测未提供的
$clean['email']
的情况。也许如果(!empty($clean['email'])和&$result[0]==$clean['email']]){…}
是的,所以我只需要一段数据来说明数据库刚刚填充了rowCount(),但一旦我将哈希插入数据库,它就会绕过,因为数据库至少在一列中自动填充。我正在使用PDO查看columnCount(),但我认为需要首先查询数据库。我需要的是一个PDO方法,它说x个列实际上刚刚被填充,转到并重定向…@AntPower我认为这种方法将适用于除空输入以外的所有情况;您只需检测未提供的$clean['email']
的情况。也许如果(!empty($clean['email'])和&$result[0]===$clean['email']){…}
现在就尝试一下……谢谢……它奏效了……谢谢你的帮助。。。。。。。