The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

> Re direct to a thank you page after submit button pressed
Ted
post 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
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
 
Reply to this topicStart new topic
Replies
Christian J
post 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?
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Ted
post Sep 6 2018, 09:16 AM
Post #3


Newbie
*

Group: Members
Posts: 10
Joined: 4-September 18
Member No.: 26,706



QUOTE(Christian J @ Sep 6 2018, 05:27 AM) *

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
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Christian J
post Sep 6 2018, 01:51 PM
Post #4


.
********

Group: WDG Moderators
Posts: 9,653
Joined: 10-August 06
Member No.: 7



QUOTE(Ted @ Sep 6 2018, 04:16 PM) *

QUOTE(Christian J @ Sep 6 2018, 05:27 AM) *

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. unsure.gif

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.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Ted
post Sep 6 2018, 05:01 PM
Post #5


Newbie
*

Group: Members
Posts: 10
Joined: 4-September 18
Member No.: 26,706



QUOTE(Christian J @ Sep 6 2018, 01:51 PM) *

QUOTE(Ted @ Sep 6 2018, 04:16 PM) *

QUOTE(Christian J @ Sep 6 2018, 05:27 AM) *

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. unsure.gif

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
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Posts in this topic
Ted   Re direct to a thank you page after submit button pressed   Sep 4 2018, 05:23 AM
Christian J   Headers must/should be the first thing that's ...   Sep 4 2018, 11:29 AM
Ted   Hello Christian J Sorry for the delay in replying....   Sep 5 2018, 06:07 AM
CharlesEF   I also suggest you not suppress mail errors. In o...   Sep 4 2018, 01:23 PM
CharlesEF   I meant for you to place the header command inside...   Sep 5 2018, 10:14 AM
Ted   Hello CharlesEF This is what I have done as you su...   Sep 5 2018, 12:13 PM
Christian J   if(mail($email_to, $email_subje...   Sep 5 2018, 01:00 PM
Ted   Hello Christian J I have removed the semicolon but...   Sep 5 2018, 05:12 PM
Christian J   Is there any content (even whitespace, tabs or lin...   Sep 5 2018, 07:20 PM
Ted   Is there any content (even whitespace, tabs or li...   Sep 6 2018, 01:34 AM
Christian J   Is there any content (even whitespace, tabs or li...   Sep 6 2018, 06:02 PM
CharlesEF   Can you post or attach the entire current version ...   Sep 5 2018, 07:54 PM
Ted   Can you post or attach the entire current version...   Sep 6 2018, 01:43 AM
Christian J   I tested the script, and it redirected to where I ...   Sep 6 2018, 05:27 AM
Ted   I tested the script, and it redirected to where I...   Sep 6 2018, 09:16 AM
Christian J   [quote name='Christian J' post='136156' date='Sep...   Sep 6 2018, 01:51 PM
Ted   [quote name='Ted' post='136158' date='Sep 6 2018,...   Sep 6 2018, 05:01 PM
Christian J   No, I meant that http://www.ringsjustforyou.co.uk/...   Sep 6 2018, 05:49 PM
Ted   No, I meant that [url=http://www.ringsjustforyou....   Sep 7 2018, 05:27 AM
Christian J   This is the link [url=http://www.ringsjustforyou....   Sep 7 2018, 10:44 AM
Ted   This is the link [url=http://www.ringsjustforyou...   Sep 7 2018, 04:42 PM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 19th April 2024 - 05:24 AM