Я пытаюсь создать страницу проверки, которая отправляет случайно сгенерированный код на электронную почту пользователей с использованием сценария 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>






$addr = shell_exec("python test.py $email $code "); код выполняется каждый раз при загрузке страницы. Вы можете добавить условие перед этим кодом.
if (!isset($_POST['submit2'])){
$addr = shell_exec("python test.py $email $code ");
}
после попытки я нашел решение, поместив эту строку
$addr = shell_exec("python test.py $email $code ");
на странице перед этой формой, и это выполнит код только один раз
спасибо за ваш ответ, это заставит код снова запуститься, когда я нажму «Отправить». Я не хочу этого, я нашел другое решение