У меня есть базовая форма контакта с recaptcha, которая просто использует PHP
mail()
для отправки по электронной почте входных данных. Однако теперь мне нужно иметь дополнительное вложение файла, которое также будет отправлено по электронной почте. Я новичок в PHP
и совершенно не уверен, как это сделать. Поскольку файл предлагается пользователем, мне нужно будет загрузить файл на сервер, а затем прикрепить его к электронному письму или есть способ разрешить прикрепление файла непосредственно к форме электронной почты, которую мы создали?
Это контактная форма с recaptcha :
<form action="index.php" method="POST" role="form" class="contactForm">
<div class="form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Your Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
<div class="validation"></div>
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid email" />
<div class="validation"></div>
</div>
<div class="form-group">
<input type="text" class="form-control" name="reason" id="reason" placeholder="Subject" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
<div class="validation"></div>
</div>
<div class="form-group">
<textarea class="form-control" name="comment" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Message"></textarea>
<div class="validation"></div>
</div>
<div class="form-group">
<input type="file" class="form-control" id="attachment" name="attachment">
</div>
<div class="g-recaptcha" data-sitekey="GOOGLE_RECAPTCHA_KEY"></div>
<div class="text-center"><button type="submit">Send Message</button></div>
Это PHP
почта :
<?php
//Checking For reCAPTCHA
$captcha;
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
}
// Checking For correct reCAPTCHA
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRET_KEY_&response=" . $captcha);
if (!$captcha || $response.success == false) {
echo "Your CAPTCHA response was wrong.";
exit ;
} else {
// Checking For Blank Fields..
if ($_POST["name"] == "" || $_POST["email"] == "" || $_POST["reason"] == "" || $_POST["comment"] == "") {
echo "Fill All Fields..";
} else {
$name=$_POST['name'];
$email=$_POST['email'];
$reason=$_POST['reason'];
$comment=$_POST['comment'];
// Check if the "Sender's Email" input field is filled out
$email = $_POST['email'];
// Sanitize E-mail Address
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate E-mail Address
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
if (!$email) {
echo "Invalid Sender's Email";
} else {
$to = 'email@email.com';
$subject = "Contact Form";
$message = " Name: " . $name . "\r\n Email: " . $email . "\r\n Subject: " . $reason . "\r\n Comment: " . $comment;
$headers = "From: enq@website.co.za\r\n";
// Sender's Email
// Message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70, "\r\n");
// Send Mail By PHP Mail Function
if (mail($to, $subject, $message, $headers)) {
print "<script>document.location.href='http://www.website.com/contactsuccess.html';</script>";
} else {
echo "Failed to send email, try again.";
exit ;
}
}
}
}
?>