[mysql]通过激活链接的电子邮件帐户验证

标签: MySQL PHP HTML
发布时间: 2017/1/9 22:04:53
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图通过发送一个激活链接到给定的邮件 id 验证的邮件帐户。 为此我生成一个随机数并将它存储为数据库中的 check_activation。 没有问题是,无论什么我通过在链接的 id,该数据库获取更新。

都是我的代码的一部分;

验证页面︰

$username = $_SESSION['username'];    

include "connect.php";  

$query = "select * from data_main where username = \"$username\"";    

$result = mysql_query($query) or die(mysql_error());    

$row = mysql_fetch_array($result);    

$id_string = $row['check_activation'];    

$query = "update data_main set check_activation = 'validated' where  check_activation = \"$id_string\" ";    

$retrn = mysql_query($query) or die(mysql_error());    

if($retrn !== true)    

{

        echo "error in validation".mysql_error();    
        exit;    
}    

这是我发给用户激活链接。

$mail_body.="http://$servr/dir_name/checkactivation.php?check_activation=$textstr";

有我可以使用来验证电子邮件帐户的任何其他方法。只有在用户单击给定的链接并验证它之后,应激活该帐户。

解决方法 1:

试试这个

include      "connect.php";
$username  = $_SESSION['username'];
$id_string = $_GET['check_activation'];
$query     = "select * from data_main where username = '{$username}' AND check_activation = '{$id_string}'";    
$result    = mysql_query($query) or die(mysql_error());    
$rows      = mysql_num_rows($result);
$retrn     = false;    

if($rows == 1)
{
    $query     = "update data_main set check_activation = 'validated' where  check_activation = '{$id_string}' ";    
    $retrn     = mysql_query($query) or die(mysql_error());
}
else
{
    echo "error in validation".mysql_error();    
    exit;    
}

注意︰

您应该使用MySQLiPDO做你 DBConnection

赞助商