<form id="contact-form" method="post" enctype="multipart/form-data">
<div class="row">
<div class="form-group col-md-6">
<input type="text" name="name" class="form-control" id="first-name" placeholder="Имя" required="required">
</div>
<div class="form-group col-md-6">
<input type="email" name="email" class="form-control" id="first-email" placeholder="E-mail" required="required">
</div>
<div class="form-group col-md-12">
<input type="text" name="subject" class="form-control" id="subject" placeholder="Тема" required="required">
</div>
<div class="form-group col-md-12">
<textarea rows="6" name="message" class="form-control" id="description" placeholder="Ваше сообщение" required="required"></textarea>
</div>
<div class="col-md-12">
<div class="actions">
<input type="submit" value="Отправить" name="submit" id="submitButton" class="btn btn-lg btn-contact-bg" title="Отправить сообщение!" />
</div>
</div>
</div>
</form>
// JavaScript contact form Document
$(document).ready(function() {
$('#contact-form').submit(function() {
$('#contact-form .error').remove();
var hasError = false;
$('.requiredField').each(function() {
if(jQuery.trim($(this).val()) == '') {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">You forgot to enter your '+labelText+'</span>');
$(this).addClass('inputError');
hasError = true;
} else if($(this).hasClass('email')) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test(jQuery.trim($(this).val()))) {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">You entered an invalid '+labelText+'</span>');
$(this).addClass('inputError');
hasError = true;
}
}
});
if(!hasError) {
$('#contact-form input.submit').fadeOut('normal', function() {
$(this).parent().append('');
});
$("#loader").show();
$.ajax({
url: "contact.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data){
$('#contact-form').slideUp("fast", function() {
$(this).before('<div class="success">Thank you. Your Email was sent successfully.</div>');
$("#loader").hide();
})
}
});
return false;
}
});
});
<?php
$errors = '';
$limit_size=10000000;
$myemail = 'почта@site.ru'; /*Replace with your email*/
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['subject']) ||
empty($_POST['message']))
{
$errors .= "\n Error: Required Field";
}
/*data*/
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: $email";
if (!eregi(
"^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",
$email))
{
$errors .= "\n Error: Invalid Email Address";
}
if( empty($errors))
{
$to = $myemail;
$email_subject = "A New Message Awaits: $subject";
$txt = "You have received a new message from your website. Details are given below.\n Name: $name \n Email: $email \n Subject: $subject \n Message: \n $message";
// preparing attachments
$files = array();
if($file_one)
{
array_push($files,$file_one);
}
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
$message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $txt . "\n\n";
$message .= "--{$mime_boundary}\n";
for($x=0;$x<count($files);$x++){
$file = fopen('tmp/'.$files[$x],"rb");
$data = fread($file,filesize('tmp/'.$files[$x]));
fclose($file);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
"Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
$message .= "--{$mime_boundary}\n";
}
mail($to, $email_subject, $message, $headers);
}
?>
Внимание
Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.
Есть следующие альтернативы:
preg_match() (Используйте модификатор i (PCRE_CASELESS))
Даже ошибки никакой нет. По нажатию на кнопку тупо ничего не происходит.