如何使生成的代码在多次输入(PHP)后过期?
我一直在尝试用PHP编写一个代码,生成一个随机代码,存储在数据库中,并要求用户输入。如果输入代码超过3次,则代码需要过期。这是我的代码:如何使生成的代码在多次输入(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
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”