My contact form is coming from TEST - as shown in below code but I need it to come from the person completing the form so that when the e-mail is replied to it goes to the address entered, not TEST.
I am new to PHP might I ask help with implementing the Reply-to? I've tried and keep missing something.
This is my original code. Thank you!
<?php
if(isset($_POST['email'])) {
function died($error) {
// your error code can go here
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();
}
// validation expected data exists
if(!isset($_POST['contact_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
$contact_name = $_POST['contact_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // required
$comments = $_POST['comments']; // not required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
}
$string_exp = "/^[A-Za-z 0-9.'-]+$/";
if(!preg_match($string_exp,$contact_name)) {
$error_message .= 'The Contact Name you entered does not appear to be valid.<br />';
}
if(!preg_match($string_exp,$telephone)) {
$error_message .= 'The Telephone # you entered does not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.
";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Contact Name: ".clean_string($contact_name)."
";
$email_message .= "Email: ".clean_string($email_from)."
";
$email_message .= "Telephone: ".clean_string($telephone)."
";
$email_message .= "Comments: ".clean_string($comments)."
";
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once "Mail.php";
$from = "TEST<todd@xxxxxx.com>";
$to = "<anyone@xxxxxxxx.com>";
$subject = "Test message";
$body = "$email_message";
$host = "mail.xxxxxxxx.com";
$username = "todd@xxxxxxxx.com";
$password = "xxxxxxxxxx";
headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p></p>");
}
?>
<!-- include your own success html here -->
message sent
<?php
}
?>
Try:
$from = $_POST['contact_name'];
Or, if you want their email to appear:
$from = $_POST['email'];