首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过激活链接验证电子邮件帐户

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

Stack Overflow用户
提问于 2014-06-26 08:24:11
回答 1查看 131关注 0票数 2

我试图通过发送到给定邮件id的激活链接来验证邮件帐户。为此,我将生成一个随机数,并将其作为check_activation存储在数据库中。不,问题是,不管我在链接中传递了什么,数据库都会被更新。

我的代码的一部分是;

验证页面:

代码语言:javascript
复制
$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;    
}    

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

代码语言:javascript
复制
$mail_body.="http://$servr/dir_name/checkactivation.php?check_activation=$textstr";

有没有其他方法可以用来验证一个电子邮件帐户。只有在用户单击给定链接并对其进行验证之后,帐户才会被激活。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 08:36:04

尝尝这个

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24425717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档