Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使生成的代码在多次输入(PHP)后过期?_Php_Mysql_Xampp - Fatal编程技术网

如何使生成的代码在多次输入(PHP)后过期?

如何使生成的代码在多次输入(PHP)后过期?,php,mysql,xampp,Php,Mysql,Xampp,我一直在尝试用PHP编写一个代码,生成一个随机代码,存储在数据库中,并要求用户输入。如果输入代码超过3次,则代码需要过期。这是我的代码: <?php include("ProcessCode.php"); $con = mysqli_connect("localhost","root","") ; if(mysqli_select_db($con,"login")) { echo 'database selected' ; } $rand=rand(); echo $rand ;

我一直在尝试用PHP编写一个代码,生成一个随机代码,存储在数据库中,并要求用户输入。如果输入代码超过3次,则代码需要过期。这是我的代码:

<?php
include("ProcessCode.php"); 
$con = mysqli_connect("localhost","root","") ;
if(mysqli_select_db($con,"login"))
{
echo 'database  selected' ;
}

$rand=rand();
echo $rand ;

$sql = "INSERT INTO random (number) VALUES ('$rand') "  ;

if(mysqli_query($con,$sql))
{
   echo 'inserted'  ;
}

?>
    $CodeCheck=$_POST['code'];

     //Establishing Connection with server
     $conn = mysqli_connect("localhost", "root", "");

      //Selecting Database
      $db = mysqli_select_db($conn, "login");

       //sql query to fetch information of registerd user and finds user match.
      $query = mysqli_query($conn, "select * from random WHERE number='$CodeCheck'");

       $rows = mysqli_num_rows($query);

      if (mysqli_num_rows($query) > 0)
         {
          echo " Code exists already.";
         }

      if($rows == 1)
       {
        header("Location: Success.php");

       }
     else
     {
      $error = " Code is Invalid";
      echo $error;
     }

在您的表中可以有一个用于计数的字段。当使用登录和登录错误时,将+1添加到您的计数中。当用户成功登录时,重置计数。如果计数满足+3,则重置代码。

我从您的问题中了解到,在您的网站上交互用户插入3次后,您需要关于如何使随机代码过期的逻辑,假设只要代码未过期,他就可以进行插入,您可以将其加载到您的页面上

我会通过数据库查询来实现这一点

请遵循下面列出的说明

说明:

当php页面生成随机代码时,您可以使用自动引用键将其存储在数据库表中,例如, 假设您随机生成了如下代码:

“这里有一些随机码”

上面由php页面生成的代码已经从mysql表中加载,名为Random_generated_code,我将编辑此表并在其中添加新字段,并将其称为generated_code_Reference_Key(可以是自动序列号)为了避免任何重复,我们还要创建一个名为Expire_Flag的附加字段,稍后我们将使用该字段

因此,一旦页面加载了上面的示例代码,就应该检索生成的\u code\u Reference\u键,并将其保存在页面上的隐藏变量中 它应该根据expire_标志值作为条件加载到页面上 从随机生成的代码中选择生成的代码,其中expire\u flag=“”

现在,一旦用户尝试插入生成的代码,在每次插入时,在数据库中定义另一个表,让我们调用它(由用户插入的代码)并将在您的网站上执行此操作的用户的用户名存储在其中。您必须存储生成的_Code_Reference_密钥,我们将其存储在隐藏变量中,如前所述,以指示插入时使用的代码

现在,在页面加载或任何您想要的事件期间,您可以通过从inserted_Codes_by_users表中的make select语句查找过期代码

选择计数(生成的\u代码\u参考\u键)作为\u用户从插入的\u代码\u中使用的\u数量,其中用户名=该\u用户的用户名\u

所以你可以得到这个用户插入这个特定生成的随机代码的次数

在一个变量中检索查询结果,为了使其有意义,让我们将其称为页面加载事件上的\u Code\u Used\u Qty和make if条件或任何您喜欢的事件

如果使用的代码数量=3,则 将update语句激发到加载随机生成代码的第一个表
并根据引用密钥更新该代码(已过期)的expire_标志字段

更新随机生成的\u代码集expire\u Flag=“expired”其中生成的\u代码\u引用\u Key=“生成的\u代码\u引用\u Key”