Хорошо, ваш код содержит некоторые ошибки, я отредактировал ваш код, чтобы он заработал, я добавил некоторые дополнительные проверки через php (лучше, чем html5), теперь должен работать нормально, я не проверял весь код, дайте мне знать, если это тебе достаточно ...
form.php
<?php @ini_set('default_charset', 'UTF-8'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="pragma" content="no-cache">
<meta name="robots" content="noindex, nofollow">
<title>Contact Form</title>
<link rel="stylesheet" type="text/css" media="all" href="form.css">
<link rel="shortcut icon" href="/favicon.ico">
</head>
<body>
<div class="row justify-content-center" style="width: 100%">
<div class="col-10 col-md-6 justify-content-center align-self-center">
<p class="error"><?php if (isset($error)) { echo $error; } ?></p>
<form name="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], NULL, 'UTF-8'); ?>" method="post">
<div class="form-group">
<label>Name</label>
<input name="name_contact" id="name_contact" placeholder="Your Name..." value="<?php if (isset($_POST['name_contact'])) { echo htmlentities($_POST['name_contact'], ENT_QUOTES, 'UTF-8'); } ?>">
</div>
<div class="form-group">
<label>Email</label>
<input name="email_contact" id="email_contact" placeholder="Your Email Address..." value="<?php if (isset($_POST['email_contact'])) { echo htmlentities($_POST['email_contact'], ENT_QUOTES, 'UTF-8'); } ?>">
</div>
<div class="form-group">
<label>Tell us about you</label><br />
<textarea name="message_contact" id="message_contact" class="form-control" rows="4" cols="50" placeholder="Your Message..."><?php if (isset($_POST['message_contact'])) { echo htmlentities($_POST['message_contact'], ENT_QUOTES, 'UTF-8'); } ?></textarea>
</div>
<button class="btn btn-primary" name="submit" type="submit">Send</button>
</form>
</div>
</div>
</body>
</html>
contact.php
<?php
@ini_set('default_charset', 'UTF-8');
if (!isset($_POST['name_contact']) || !isset($_POST['email_contact']) || !isset($_POST['message_contact'])) {
$error = "Please, fill all required fields!";
include("./form.php");
exit();
}
if (!isset($_POST['name_contact']) || empty($_POST['name_contact']) || strlen($_POST['name_contact']) == 0) {
$error = "Please, provide a valid email name!";
include("./form.php");
exit();
} else {
$name_contact = htmlentities($_POST['name_contact'], ENT_QUOTES, 'UTF-8');
}
if (!isset($_POST['email_contact']) || empty($_POST['email_contact']) || strlen($_POST['email_contact']) == 0 || !preg_match("/^[a-zA-Z0-9]+([_\\.-][a-zA-Z0-9]+)*". "@([a-zA-Z0-9]+([\.-][a-zA-Z0-9]+))+$/", $_POST['email_contact'])) {
$error = "Please, provide a valid email address!";
include("./form.php");
exit();
} else {
$email_contact = $_POST['email_contact'];
}
if (!isset($_POST['message_contact']) || empty($_POST['message_contact']) || strlen($_POST['message_contact']) == 0) {
$error = "Please, provide a valid email message!";
include("./form.php");
exit();
} else {
$message_contact = htmlentities($_POST['message_contact'], ENT_QUOTES, 'UTF-8');
}
if (isset($_POST['submit'])) {
$to = 'irivero@ngine.digital'; // Email submissions are sent to this email
// Create email
$email_subject = "Mensaje desde el website";
$email_body = "Haz recibido un mensaje desde la página web\n\n" . "Name_contact: $name_contact\nEmail_contact: $email_contact\nMessage_contact: $message_contact\n";
$headers = "MIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n";
$headers .= "From: web@site.com\n";
$headers .= "Reply-To: $email_contact";
if (mail($to,$email_subject,$email_body,$headers)) { // Post message
$error = "SUCCESS: Your Message is Sent!";
include("./form.php");
exit();
} else {
$error = "WARNING: Your Message cannot be Sent!";
include("./form.php");
exit();
}
}
?>
Просто загрузите contact.php
, чтобы заставить работать HTML-форму ... Надеюсь, это поможет.