PHP, ограничение ввода пользователем неверное значение х время

0

Я пытаюсь ограничить ввод пользователя для кода, который пользователь вводит неправильно, когда пользователь забыл свой пароль. Я делаю цикл for и внутри цикла даю оператор if. Код отправляется на их электронную почту, и им необходимо ввести код, прежде чем они смогут изменить пароль. Похоже, мой код ошибочен.

<?php
for($count=0;$count<5;$count++)
		{	
			if($code != str_replace($unnecessary2, "", $validcode) && $count < 5)
			{
				http_response_code(406);	
				echo '[{"message":"code is invalid!"}]';
				$count = $count+1;
				die();
			}
			else if($code != str_replace($unnecessary2, "", $validcode) && $count == 5)
			{
				$deletedata="delete from personal_password_reset where email='".$dt[0]["email"]."'";
				run_sql($deletedata);
				
				http_response_code(406);	
				echo '[{"message":"you have entered invalid code 5 times, please request a new code."}]';
				
				die();
			}
			else
			{
				http_response_code(200);	
				echo '[{"message":"code is valid!"}]';
				die();
			}
		}
?>

Когда код является неправильным в течение 5-го раза, пользователь должен получить второе сообщение, которое you have entered invalid code 5 times, please request a new code. , Кто-нибудь может мне помочь?

  • 0
    Ваш цикл будет выполняться только один раз, у вас есть die() в каждой опции.
  • 0
    Как вы называете этот код?
Показать ещё 1 комментарий
Теги:

3 ответа

1
Лучший ответ

Храните эту информацию в сеансе.

Определите порог, а затем сохраните попытки

 if(FAILED_LOGIN_CASE)///  {


   if($_SESSION['failedAttempts']== Threshold) {
        ///attempts exceeded
   }
   else{
    $_SESSION['failedAttempts']= $_SESSION['failedAttempts'] + 1;
   }
 }
 else{
  //login 
   $_SESSION['failedAttempts']=0;
 }

В случае успешного входа в систему установите для сеанса значение 0.

0

В вашем операторе if вы проверяете значение $ count == 5.

else if($code != str_replace($unnecessary2, "", $validcode) && $count == 5)

Граф никогда не примет значение 5, поскольку цикл for останавливается на $ count <5.

for($count=0;$count<5;$count++)
0

Вы можете использовать сеанс и сохранять счетчик для недопустимых подсчетов после того, как каждый раз, когда пользователь вводит неверный набор данных counter++ и, наконец, фиксирует это на сеансе. Наконец, для контроля, который проверяет

if(Session['YOUR_SESSION'] == 5)
// your code place here
  • 0
    Я думаю, что вы можете включить еще немного кода. Как настроить сеанс и т. Д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню