Как сделать срок действия сгенерированного кода после нескольких раз ввода (PHP)? - PullRequest
0 голосов
/ 25 августа 2018

Я пытался написать код на 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;
     }

Не могли бы вы объяснить, как реализовать часть с истечением срока действия?

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Я понимаю из вашего вопроса, что вам нужна логика того, как сделать код random_iS истекшим после вставки от взаимодействующих пользователей на ваш сайт 3 раза, при условии, что, пока не истек срок действия кода, он сможет делать свои вставки и вы можете загрузить его на свою страницу.

Я бы сделал это с помощью запросов к базе данных.

Пожалуйста, следуйте приведенным ниже инструкциям

инструкции:

пока ваша php-страница генерирует случайный код, вы можете сохранить его в таблице базы данных с помощью ключа автоматической ссылки, например, при условии, что вы случайно сгенерировали код, как показано ниже:

«Какой-то случайный код здесь»

приведенный выше код, сгенерированный вашей php-страницей, загрузил ее из таблицы mysql с именем Random_Generated_Code, я бы пошел, чтобы отредактировать эту таблицу, добавить в нее новое поле и вызвать ее генерируемый_Code_Reference_Key (может быть автоматическим серийным номером), чтобы избежать дублирования также создайте дополнительное поле с именем Expire_Flag, которое мы будем использовать позже.

так что, как только ваша страница загрузит приведенный выше пример кода, вы должны получить сгенерированный ключ__Код_Рекциона_кей и сохранить его в скрытой переменной на вашей странице. он должен быть загружен на страницу на основе значения expire_Flag в качестве условия выберите сгенерированный_код из Random_Generated_Code, где expire_flag = ""

теперь, когда пользователь пытается вставить этот сгенерированный код, каждый раз, когда он вставляет его, определяют другую таблицу в вашей базе данных, позволяет вызывать ее (insert_Codes_by_users) и сохранять в ней имя пользователя, который делает это на вашем веб-сайте. хранить сгенерированный_код_референции_кей, который мы храним, в скрытой переменной, как упоминалось ранее, чтобы указать, какой код использовался при вставке.

теперь во время загрузки страницы или любого другого события, которое вы хотите, вы можете найти код с истекшим сроком действия с помощью оператора make select из таблицы paste_Codes_by_users

выберите количество (генерируемого_кода_референции_Ключа) как The_Code_Used_Qty из вставленных_кодов_байщиков, где username = username_of_that_user

, чтобы вы могли узнать, сколько раз этот пользователь вставил этот конкретный сгенерированный_лучайный_код

извлекает результат запроса в переменную и, чтобы иметь смысл, назовем его The_Code_Used_Qty и создадим условие if для события загрузки страницы или любого другого события, которое вам нравится

если The_Code_Used_Qty = 3, то вывести оператор обновления в первую таблицу, которая загрузила этот случайно сгенерированный код
и обновите поле expire_flag для этого кода (Expired) на основе reference_key

update Random_Generated_Code set expire_Flag = "expired", где generate_Code_Reference_Key = "генерированный_Code_Reference_Key" << тот, который хранится в скрытой переменной конец если </p>

так что теперь это приведет вас к тому, почему мы впервые загружаем таблицу random_generated_code с этим условием expire_flag = "" поскольку он будет получать только те коды, срок действия которых не истек.

надеюсь, это поможет вам достичь того, чего вы хотите. удачи и дайте мне знать, если вам нужна помощь или если вы столкнулись с какой-то путаницей при чтении моего ответа

Удачи.

0 голосов
/ 25 августа 2018

в вашей таблице вы можете иметь поле для подсчета. Если использовать логин и логин неверный, добавьте + 1 к вашему счету. После успешного входа пользователя сбросьте счетчик. Если количество соответствует +3, сбросьте код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...