php response form .. simple error?, email response posts to wrong field |
php response form .. simple error?, email response posts to wrong field |
loftus49 |
Nov 15 2015, 03:28 PM
Post
#1
|
Group: Members Posts: 3 Joined: 15-November 15 Member No.: 23,744 |
I'm using a simple php script to receive info from users on a website which is then emailed to me. The problem is that the "Company" info is posted to the Last Name field in the response. Here is a sample response emailed to me:
Form details below. First Name: Duane Last Name: XYZ Incorporated Company: Email: ***@*** Telephone: 5555555555 Comments: #3 test for inclusion of company field As you can see, the "Company" info is put in the "Last Name" field and no actual last name info is recorded. I don't see where the error could be in the html so I'm guessing it is in the php. I must be too close to this since I can't seem to find the error. Here is the little php script: <!DOCTYPE php> <?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "***@***.com"; $email_subject = "Form Response"; 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['first_name']) || !isset($_POST['last_name']) || !isset($_POST['company']) || !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.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $last_name = $_POST['company']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // 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 .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Company: ".clean_string($company)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- include your own success html here --> Thank you for contacting us. We will be back in touch with you very soon. <?php } ?> And here is the html form section that deals with this: <form name="contactform" method="post" action= "send_form_email.php" id="contactform"> <table width="450px"> <tr> <td valign="top"><label for="first_name">First Name *</label></td> <td valign="top"><input type="text" name="first_name" maxlength= "50" size="30"></td> </tr> <tr> <td valign="top"><label for="last_name">Last Name *</label></td> <td valign="top"><input type="text" name="last_name" maxlength= "50" size="30"></td> </tr> <tr> <td valign="top"><label for="company">Company</label></td> <td valign="top"><input type="text" name="company" maxlength= "50" size="30"></td> </tr> <tr> <td valign="top"><label for="email">Email Address *</label></td> <td valign="top"><input type="text" name="email" maxlength="80" size="30"></td> </tr> <tr> <td valign="top"><label for="telephone">Telephone Number</label></td> <td valign="top"><input type="text" name="telephone" maxlength= "30" size="30"></td> </tr> <tr> <td valign="top"><label for="comments">Comments *</label></td> <td valign="top"> <textarea name="comments" maxlength="1000" cols="40" rows="6"> </textarea> <tr> <td colspan="2" style="text-align:center"><input type="submit" value="Submit"></td> </tr> </table> </form> Does anyone see the error? Thanks. This post has been edited by Christian J: Nov 15 2015, 04:49 PM |
CharlesEF |
Nov 15 2015, 04:10 PM
Post
#2
|
Programming Fanatic Group: Members Posts: 1,981 Joined: 27-April 13 From: Edinburg, Texas Member No.: 19,088 |
This line of code is your problem"
CODE $last_name = $_POST['company']; // required What you need is this: CODE $company = $_POST['company']; // required |
Christian J |
Nov 15 2015, 04:50 PM
Post
#3
|
. Group: WDG Moderators Posts: 9,650 Joined: 10-August 06 Member No.: 7 |
I masked the email address in the OP so spambots won't find it.
|
loftus49 |
Nov 15 2015, 07:36 PM
Post
#4
|
Group: Members Posts: 3 Joined: 15-November 15 Member No.: 23,744 |
|
loftus49 |
Nov 15 2015, 07:37 PM
Post
#5
|
Group: Members Posts: 3 Joined: 15-November 15 Member No.: 23,744 |
This line of code is your problem" CODE $last_name = $_POST['company']; // required What you need is this: CODE $company = $_POST['company']; // required I knew it was a simple dumb thing and that I was too close to it to see it. Many thanks for taking the time to find it. I truly appreciate it. |
Lo-Fi Version | Time is now: 18th April 2024 - 03:44 AM |