Оператор Else выполняется, даже если оператор if истинен? - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь установить sh систему проверки для формы, тогда как один из элементов input называется verification. Форма должна быть отправлена ​​(как электронное письмо кому-то еще), если значение verification равно 108 - что работает. Однако, когда я запускаю свой код, я обнаруживаю, что код внутри оператора else (встроенного оператора if) также выполняется, и я получаю всплывающее окно, которое спрашивает меня, что такое 3+105. Почему это?

HTML

<form class="pb-5" action="" method="POST">
   <div class="form-row">
      <div class="form-group col-md-6">
         <label for="inputName4">Name</label>
         <input
            type="text"
            class="form-control"
            id="inputName"
            name="name" 
            value="<?php echo isset($_POST['name']) ? htmlspecialchars($_POST['name'], ENT_QUOTES) : ''; ?>"
            required
            />
      </div>
      <div class="form-group col-md-6">
         <label for="inputCompany">Company</label>
         <input
            type="text"
            class="form-control"
            id="inputCompany"
            name="company" 
            value="<?php echo isset($_POST['company']) ? htmlspecialchars($_POST['company'], ENT_QUOTES) : ''; ?>"
            required
            />
      </div>
   </div>
   <div class="form-row">
      <div class="form-group col-md-6">
         <label for="subject">Subject</label>
         <input
            type="text"
            class="form-control"
            id="subject"
            name="subject" 
            value="<?php echo isset($_POST['subject']) ? htmlspecialchars($_POST['subject'], ENT_QUOTES) : ''; ?>"
            required
            />
      </div>
      <div class="form-group col-md-6">
         <label for="inputEmail">Email</label>
         <input
            type="email"
            class="form-control"
            id="inputEmail"
            name="email" 
            value="<?php echo isset($_POST['email']) ? htmlspecialchars($_POST['email'], ENT_QUOTES) : ''; ?>"
            required
            />
      </div>
   </div>
   <div class="form-group">
      <label for="verification">What is 5+103?</label>
      <input
         type="text"
         class="form-control"
         id="verification"
         name="verification" 
         required
         ></input>
   </div>
   <div class="form-group">
      <label for="textarea">Message</label>
      <textarea
         class="form-control"
         id="textarea"
         rows="3"
         name="message" 
         required
         ><?php echo isset($_POST['message']) ? htmlspecialchars($_POST['message'], ENT_QUOTES) : ''; ?>"</textarea>
   </div>
   <button type="submit" class="btn btn-primary my-3">
   Send
   </button>
</form>

PHP

    $verification = $_POST["verification"];
    settype($verification, "integer");
    if($_SERVER["REQUEST_METHOD"] == "POST") {
         if($verification == 108) {
              mail($to, $subject, $message, $headers);
              echo "<script> alert('Thank you for your mail!')</script>";
         } elseif ($_SERVER["REQUEST_METHOD"] == "POST" && mail($to, $subject, $message, $headers) === false) {
              echo "<script> alert('An error has occurred.')</script>";
         } else {
              echo "<script> alert('What is 3+105?')</script>";
         }
    } else {
         return;
    }

Если я могу прояснить свой вопрос в любом Кстати, не стесняйтесь, дайте мне знать! Заранее спасибо!

1 Ответ

2 голосов
/ 19 июня 2020

Полагаю придется переписать свой if ... else ...

$verification = $_POST["verification"];
settype($verification, "integer");
if($_SERVER["REQUEST_METHOD"] == "POST") {
   if($verification == 108) {
      //TEST IF MAIL IS CORRECTLY SEND
      if( mail($to, $subject, $message, $headers) === false){
         echo "<script> alert('An error has occurred.')</script>";
         }
      else{
         echo "<script> alert('Thank you for your mail!')</script>";
         }
   }
   else {
      echo "<script> alert('What is 3+105?')</script>";
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...