PHP повторяет код после нажатия кнопки «Отправить»

Я пытаюсь создать страницу проверки, которая отправляет случайно сгенерированный код на электронную почту пользователей с использованием сценария python после того, как пользователь введет код проверки, он будет сравниваться с кодом, сгенерированным из сценария, и если он правильный, то перенаправить на другую страницу, если нет, тогда код будет напечатан неправильно, и пользователь должен повторить попытку .... проблема заключается в том, что каждый раз, когда пользователь нажимает «Отправить», код отправляется по электронной почте, что означает, что когда я нажимаю «Отправить», эта строка будет выполняться снова

$addr = shell_exec("python test.py $email $code ");

пытался использовать выход() и умереть() и ничего не произошло

<?php
session_start(); 
echo "E-mail has been sent to " ;
echo $_SESSION['email'];
echo $email , "   ";
$_SESSION["code"];
$email = escapeshellarg($_SESSION['email']);
$code = escapeshellarg($_SESSION['code']);
$code = preg_replace("/[^A-Z0-9]/", "", $code);
$addr = shell_exec("python test.py $email $code ");
?>
<!DOCTYPE HTML>  
<html>
<body>  
<h2>E-mail Verfication</h2>
<form method = "post" action = "">  
Name: <input type = "text" name = "verf" value = "">
  <br><br>
  <input type = "submit" name = "submit2" value = "Submit">  
</form>
<?php
if (isset($_POST['submit2'])) {
    $verf1 = escapeshellarg($_POST['verf']);    
    $verf2 = preg_replace("/[^A-Z0-9]/", "", $verf1);
    if ($verf2 == $code) {
        echo "Correct!";
        echo "<script type='text/javascript'>window.top.location='finish.php';</script>"; exit;
        $ip = $_SERVER['REMOTE_ADDR'];
        $block = shell_exec("./block.sh $ip ");
    } else { 
        echo "Wrong!";
    }
} else {
    echo "please fill the verification";
}
?>
</body>
</html>
</body>
</html>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

$addr = shell_exec("python test.py $email $code "); код выполняется каждый раз при загрузке страницы. Вы можете добавить условие перед этим кодом.

if (!isset($_POST['submit2'])){
  $addr = shell_exec("python test.py $email $code ");
}

спасибо за ваш ответ, это заставит код снова запуститься, когда я нажму «Отправить». Я не хочу этого, я нашел другое решение

Tyr_90 11.07.2019 07:32
Ответ принят как подходящий

после попытки я нашел решение, поместив эту строку

$addr = shell_exec("python test.py $email $code ");

на странице перед этой формой, и это выполнит код только один раз

Другие вопросы по теме