我正在尝试通过向指定的邮件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";
我可以使用任何其他方法来验证电子邮件帐户。只有在用户单击给定链接并验证后才能激活该帐户。
答案 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;
}