当前位置: 首页 > 知识库问答 >
问题:

我想正确的消息显示时,用户点击电子邮件激活链接多次

滑乐逸
2023-03-14

我正在为我的a-Level做一个编程课程,我被一个问题困住了。我希望你们中的一个能帮助我。

我正在建立一个会员系统,目前我正处于电子邮件激活阶段。通过使用连接数据库的php和mysqli编码,我已经能够将电子邮件激活链接设置为工作状态,以便当用户单击激活链接时,它通过将“活动”数据库字段从“0”设置为“1”来激活用户的帐户。

我唯一的问题是,如果用户在电子邮件中再次单击激活链接,因为用户已经处于活动状态,我希望它显示消息“此帐户已被激活”;。这是因为用户无法再次激活该帐户。

但我无法让它显示此消息。即使用户已经激活了帐户,它仍会显示消息“帐户已激活”。有人知道我做错了什么吗?

下面是我的代码:

<?php
$user_to_be_activated  =   $_GET['user'];
$code_to_be_matched   =   $_GET['code'];
$code_activated = 1;

// don't use $mysqli->prepare here
$query = "SELECT TeacherUsername, Active, Code FROM Teacher WHERE TeacherUsername = ? AND Code = ? ";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("ss",$user_to_be_activated, $code_to_be_matched);
// execute query
$stmt->execute(); 
// get result and assign variables (prefix with db)
$stmt->bind_result($dbTeacherUsername, $dbActive, $dbCode);
//get number of rows
$stmt->store_result();
$counting = $stmt->num_rows();

if($counting == '1')
{

    if($dbActive == '1')
    {
        echo "This Account has already been Activated";
    }
    else{

    $updatesql = "UPDATE Teacher SET Active = ? WHERE TeacherUsername = ? AND Code = ?";                                            
    $update = $mysqli->prepare($updatesql);
    $update->bind_param("sss", $code_activated, $user_to_be_activated, $code_to_be_matched);
    $update->execute();
    $update->close();

    echo "Account is Activated";
}
}
else
{
    echo "The Code and Username doesn't match! Account is not Activated.";
}
?>

共有1个答案

狄晟睿
2023-03-14
<?
$stmt->store_result();
$counting = $stmt->num_rows();

if($counting == '1')
{
    $stmt->fetch(); //added fetch here
    if($dbActive == '1')
    {
        echo "This Account has already been Activated";
    }
    else{

    $updatesql = "UPDATE Teacher SET Active = ? WHERE TeacherUsername = ? AND Code = ?";                                            
    $update = $mysqli->prepare($updatesql);
    $update->bind_param("sss", $code_activated, $user_to_be_activated, $code_to_be_matched);
    $update->execute();
    $update->close();

    echo "Account is Activated";
}
}
else
{
    echo "The Code and Username doesn't match! Account is not Activated.";
}
?>
 类似资料:
  • 我试图创建一个激活页面,以便当用户点击他们的激活链接时,它将引导用户到activate.php页面,并显示一条消息,说明阉羊帐户是否激活。 我的问题是,它一直显示消息“代码和用户名不匹配!帐户未激活。”它根本不显示成功消息“帐户已激活”,即使已单击激活链接。 此外,如果识别了正确的用户名和代码,数据库中的“活动”列应该更改为“1”,但它仍然显示“0”,这意味着帐户仍然不活动。 我的问题是,为什么它

  • 问题内容: 我正在使用DREF和Djoser进行身份验证和用户注册。当新用户注册时,Djoser将发送激活电子邮件,其中包含执行GET请求的链接。为了激活,我需要从激活URL中提取uid和token并向POST请求Djoser激活用户。 我的环境是Python 3和Django 1.11,Djoser 1.0.1。 有关如何在Django / Djoser中处理此问题的任何帮助? 我想做的是在Dj

  • 多亏了来自NickFroty的youtube教程,我能够在php中创建一个合适的注册系统,我已经能够将他的代码从mysql转换为mysqli,并且能够在用户注册后通过电子邮件发送激活链接。 下面的代码将在数据库中插入注册详细信息,并在用户注册后将消息和激活链接发送到用户的电子邮件。 但是我现在有个问题。如果我点击链接,它会将用户导航到页面。 我的问题是:在用户点击激活链接后,它如何激活用户的帐户?

  • 当我尝试发送电子邮件意图时,无论我是否使用意图。ACTION\u发送或操作。发送并使用Sony Xperia Active电子邮件客户端,主题和收件人显示良好,但正文为空,只有客户端粘贴的标准注释除外。在我的三星Galaxy Note 2上,同样的代码也很有魅力。

  • 遇到WP插件问题,请联系表格7。当我填写表格并提交时,我收到一条成功消息,说明它已发送,但我没有在电子邮件中收到它。 邮件不在我的垃圾邮件中,我只在输入邮件时才收到邮件,邮件被发送到!? 它要发送的电子邮件是一个交换帐户。我可以通过WP后端上的联系人表单提交来查看电子邮件。但是我想解决这个问题。 类型 邮件 致:myname@company.com 发件人:网站 主题:挑战 我还检查了网站主机,他

  • 在您的网页上放置HTML电子邮件链接并不困难,但它可能会导致您的电子邮件帐户出现不必要的垃圾邮件问题。 有些人可以运行程序来收集这些类型的电子邮件,然后以各种方式将它们用于垃圾邮件。 您可以使用其他选项来方便人们向您发送电子邮件。 一种选择可能是使用HTML表单来收集用户数据,然后使用PHP或CGI脚本发送电子邮件。 举个简单的例子,查看我们的联系我们表格。 我们使用此表单获取用户反馈,然后我们使