Форма PHP перенаправляется на пустой экран после нажатия кнопки отправить

#php #html

Вопрос:

Я чувствую, что это глупый вопрос, чтобы задать его с действительно простым ответом, я пытался рассмотреть другие вопросы, связанные с этой темой, но я действительно не понимаю их.

У меня есть простая контактная форма HTML и PHP, она перенаправляет на пустую страницу.

Я понимаю, что мне, вероятно, где-то понадобится часть «заголовок», но тогда как сообщения о состоянии PHP будут отображаться в браузере, если он перенаправит обратно на предыдущую страницу?

Я попытался добавить перенаправление, и это сработало, но не появилось сообщений о том, что оно прошло успешно.

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

HTML-КОД

 <div class="col-lg-8 mt-5 mt-lg-0" data-aos="fade-left">
            <h2>Simple PHP Contact Form</h2>
            <div class="contactFrm">
              <?php if(!empty($statusMsg)){ ?>
              <p class="statusMsg <?php echo !empty($msgClass)?$msgClass:''; ?>">
                <?php echo $statusMsg; ?>
              </p>
              <?php } ?>
              <form action="forms/contact.php" method="post">
                <h4>Name</h4>
                <input type="text" name="name" placeholder="Your Name" required="">
                <h4>Email </h4>
                <input type="email" name="email" placeholder="email@example.com" required="">
                <h4>Subject</h4>
                <input type="text" name="subject" placeholder="Write subject" required="">
                <h4>Message</h4>
                <textarea name="message" placeholder="Write your message here" required=""> </textarea>
                <input type="submit" name="submit" value="Submit">
                <div class="clear"> </div>
              </form>
            </div>
          </div>
 

PHP-КОД

 <?php
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
$statusMsg = '';
$msgClass = '';
if(isset($_POST['submit'])){
    // Get the submitted form data
    $email = $_POST['email'];
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    
    // Check whether submitted data is not empty
    if(!empty($email) amp;amp; !empty($name) amp;amp; !empty($subject) amp;amp; !empty($message)){
        
        if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
            $statusMsg = 'Please enter your valid email.';
            $msgClass = 'errordiv';
        }else{
            // Recipient email
            $toEmail = '985thenquiries@protonmail.com';
            $emailSubject = 'Contact Request Submitted by '.$name;
            $htmlContent = '<h2>Contact Request Submitted</h2>
                <h4>Name</h4><p>'.$name.'</p>
                <h4>Email</h4><p>'.$email.'</p>
                <h4>Subject</h4><p>'.$subject.'</p>
                <h4>Message</h4><p>'.$message.'</p>';

            print("I worked?");
            
            // Set content-type header for sending HTML email
            $headers = "MIME-Version: 1.0" . "rn";
            $headers .= "Content-type:text/html;charset=UTF-8" . "rn";
            
            // Additional headers
            $headers .= 'From: '.$name.'<'.$email.'>'. "rn";
            
            // Send email
            if(mail($toEmail,$emailSubject,$htmlContent,$headers)){
                $statusMsg = 'Your contact request has been submitted successfully !';
                $msgClass = 'succdiv';
                print("submission successful");
                print($name);
            }else{
                $statusMsg = 'Your contact request submission failed, please try again.';
                $msgClass = 'errordiv';
                print("sub brok");
            }
        }
    }else{
        $statusMsg = 'Please fill all the fields.';
        $msgClass = 'errordiv';
    }
}
?>
 

Комментарии:

1. Он работает нормально без каких-либо ошибок, проверьте, ставите ли вы contact.php в правильном месте, т. е. он должен находиться в папке «Формы» в соответствии с вашим атрибутом действия.

2. Check whether submitted data is not empty если пусто, вы НЕ печатаете статусы. Если пусто, пожалуйста, распечатайте $statusMsg и посмотрите