#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
и посмотрите