Re direct to a thank you page after submit button pressed |
Re direct to a thank you page after submit button pressed |
Ted |
Sep 4 2018, 05:23 AM
Post
#1
|
Newbie Group: Members Posts: 10 Joined: 4-September 18 Member No.: 26,706 |
This is my first post and I have little experience with php scripts so I have created a web site with a form for a customer to enter their details. All works and I get an email with their details. The customer gets a plain page with a Thank you message. I want to change that to my custom thankyou.html page but with no success. I get this error on a plain page - Warning: Cannot modify header information - headers already sent by (output started at /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php:1) in /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php on line 80.
This is my html code for the form;- <!-- Start of the form Code --> <div id="sendform"> <form name="htmlform" method="post" action="html_form_send.php"><table width="450px"> <tr> <td valign="middle"><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="middle"><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="middle"><label for="email">Email Address *</label></td> <td valign="top"><input type="text" name="email" maxlength="80" size="30" /></td> </tr> <tr> <td valign="middle"><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">Enquires *</label></td> <td valign="top"><textarea name="comments" maxlength="1000" cols="25" rows="10"></textarea></td> </tr> <tr> <td colspan="2" style="text-align:center"><input type="submit" value="Submit" /><a href= "http://www.ringsjustforyou.co.uk/html_form.php"></a></td> </tr> </table> </form> </div> <!-- End of the Form code --> This is the code for the php file html_form_send.php;- <?php if(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "*@ringsjustforyou.co.uk"; $email_subject = "Custom Ring(s) Request"; 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['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 $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 .= "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); ?> <!-- place your own success html below Thank you for your enquiry. We will be in touch with you very soon. --> <?php header("Location: ./http://www.ringsjustforyou.co.uk/thankyou.php"); } die(); ?> The line 80 in the error massage refers to this;- Header ("Location: ./http://www.ringsjustforyou.co.uk/thankyou.php"); I have tried the thankyou page as .html and .php with the same error I hope I have told you enough to help me Thank you in advance This post has been edited by Christian J: Sep 7 2018, 10:46 AM |
Christian J |
Sep 6 2018, 05:27 AM
Post
#2
|
. Group: WDG Moderators Posts: 9,653 Joined: 10-August 06 Member No.: 7 |
I tested the script, and it redirected to where I wanted. Are you sure the PHP warning is from html_form_send.php and not from thankyou.php?
|
Ted |
Sep 6 2018, 09:16 AM
Post
#3
|
Newbie Group: Members Posts: 10 Joined: 4-September 18 Member No.: 26,706 |
I tested the script, and it redirected to where I wanted. Are you sure the PHP warning is from html_form_send.php and not from thankyou.php? I am not sure but when I get this message;- Warning: Cannot modify header information - headers already sent by (output started at /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php:1) in /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php on line 61 This warning is at the top of a blank white page, I am using ie11, and in the URL address window at the very top there is this;- http://www.ringsjustforyou.co.uk/html_form_send.php I have altered the php script to;- header("Location: http://www.ringsjustforyou.co.uk/thankyou.php"); Exactly the same warning message is displayed and the same URL is displayed at the top as thankyou.php. This is the html code in thankyou.php, the same code is in thankyou.html;- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Bespoke Hand Crafted Rings in various materials just for you</title> <meta name="Description" content="Unique, Bespoke Hand Made Rings Bentwood rings, Stainless Steel rings, Silver rings, Damascus Steel rings, Twisted Copper rings and Titanium rings. Made in Cornwall, Custom rings" /> <meta name="Keywords" content="Bent Wood Rings, Stainless Rings, Damascus Steel Rings, Tatinium Rings, Silver Rings, Silver Inlays, Gold Inlays" /> <meta name="author" content="Ted Cawston - Rings Just for You" /> <meta name="robots" content="all" /> <link rel="stylesheet" href="css/thankyou.css" type="text/css" /> </head> <body> <a id="top"></a> <div id="header"><img src="images/logo/logo.jpg" alt="A view from my home just after sunset" title="A view from my home just after sunset" /></div> <div id="menu"> <p style="text-align: center; width: 95%; padding: 15px"> <a href="#damascusrings">Damascus Steel</a> | <a href="#stainlessrings">Stainless Steel</a> | <a href="#titaniumrings">Titanium</a> | <a href="#silverrings">Silver</a> | <a href="#bentwoodrings">Bentwood</a> | <a href="#contactme">Contact Me</a></p> </div> <h1>Thank you, I will be back to you as soon as I can</h1> <h2>Copyright:- Rings Just for You © 2018</h2> <h3>This page was last updated on Saturday 01-09-2018</h3> </body> </html> It seems that there is something wrong at my end but I have no idea what. Just been on my hosts website and I have PHP 5.6. In every instance the php file sends an email with the contents that I typed in the form. Thank you for all your help Ted This post has been edited by Ted: Sep 6 2018, 09:24 AM |
Christian J |
Sep 6 2018, 01:51 PM
Post
#4
|
. Group: WDG Moderators Posts: 9,653 Joined: 10-August 06 Member No.: 7 |
I tested the script, and it redirected to where I wanted. Are you sure the PHP warning is from html_form_send.php and not from thankyou.php? I am not sure but when I get this message;- Warning: Cannot modify header information - headers already sent by (output started at /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php:1) in /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php on line 61 This warning is at the top of a blank white page, I am using ie11, and in the URL address window at the very top there is this;- http://www.ringsjustforyou.co.uk/html_form_send.php Yes it sounds like it's that page. QUOTE I have altered the php script to;- header("Location: http://www.ringsjustforyou.co.uk/thankyou.php"); Exactly the same warning message is displayed and the same URL is displayed at the top as thankyou.php. Not sure I understood this part. QUOTE This is the html code in thankyou.php, the same code is in thankyou.html;- When I tried loading http://www.ringsjustforyou.co.uk/thankyou.php I got this error: CODE Parse error: syntax error, unexpected 'version' (T_STRING) in /var/sites/r/ringsjustforyou.co.uk/public_html/thankyou.php on line 1 ...so the page seems to contain PHP code. Could you post the PHP code here? I also tried going to http://www.ringsjustforyou.co.uk/html_form.php but that's a 404. Make sure you are really editing the correct files, sometimes we put duplicates files in the wrong directory... When I went directly to http://www.ringsjustforyou.co.uk/html_form_send.php I just see a blank page, which is expected since the current script contains no error messages for that situation. |
Ted |
Sep 6 2018, 05:01 PM
Post
#5
|
Newbie Group: Members Posts: 10 Joined: 4-September 18 Member No.: 26,706 |
I tested the script, and it redirected to where I wanted. Are you sure the PHP warning is from html_form_send.php and not from thankyou.php? I am not sure but when I get this message;- Warning: Cannot modify header information - headers already sent by (output started at /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php:1) in /var/sites/r/ringsjustforyou.co.uk/public_html/html_form_send.php on line 61 This warning is at the top of a blank white page, I am using ie11, and in the URL address window at the very top there is this;- http://www.ringsjustforyou.co.uk/html_form_send.php Yes it sounds like it's that page. QUOTE I have altered the php script to;- header("Location: http://www.ringsjustforyou.co.uk/thankyou.php"); Exactly the same warning message is displayed and the same URL is displayed at the top as thankyou.php. Not sure I understood this part. QUOTE This is the html code in thankyou.php, the same code is in thankyou.html;- When I tried loading http://www.ringsjustforyou.co.uk/thankyou.php I got this error: CODE Parse error: syntax error, unexpected 'version' (T_STRING) in /var/sites/r/ringsjustforyou.co.uk/public_html/thankyou.php on line 1 ...so the page seems to contain PHP code. Could you post the PHP code here? I also tried going to http://www.ringsjustforyou.co.uk/html_form.php but that's a 404. Make sure you are really editing the correct files, sometimes we put duplicates files in the wrong directory... When I went directly to http://www.ringsjustforyou.co.uk/html_form_send.php I just see a blank page, which is expected since the current script contains no error messages for that situation. This is the php files location in my Host website. This file in on ftp.gridhost.co.uk/public_html. There are no other instances of this file there. This is a copy of that file named html_form_send.php;- Note that the thankyou.php file is on the same directory <?php if(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "***@ringsjustforyou.co.uk"; $email_subject = "Custom Ring(s) Request"; 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['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 $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 .= "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(); if(mail($email_to, $email_subject, $email_message, $headers)) { header("Location: http://www.ringsjustforyou.co.uk/thankyou.php"); exit(); } ?> <?php } die(); ?> Thank you very much Ted This post has been edited by Christian J: Sep 7 2018, 10:47 AM |
Lo-Fi Version | Time is now: 19th April 2024 - 05:24 AM |