通过激活链接验证电子邮件帐户

时间:2014-06-26 08:24:11

标签: php html mysql validation email

我正在尝试通过向指定的邮件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 个答案:

答案 0 :(得分: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;    
}

注意:

您应该使用 MySQLi PDO 来进行DBConnection