madstylex
asked on
PHP Email form that returns to previous page
Hi All,
I have created a email form using PHP that is called by a html file.
The form works great but it doesn't take the user back to the previous page once the email has been sent through.
Can some one help me do this?
Here is my code:
<?php
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
$email_from = 'info@mysite.com';
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n".
"Here is the message:\n $message";
$to = 'info@mysite.com';
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
mail($to,$email_subject,$e mail_body, $headers);
?>
I have created a email form using PHP that is called by a html file.
The form works great but it doesn't take the user back to the previous page once the email has been sent through.
Can some one help me do this?
Here is my code:
<?php
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
$email_from = 'info@mysite.com';
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n".
"Here is the message:\n $message";
$to = 'info@mysite.com';
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
mail($to,$email_subject,$e
?>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Here is my PHP email demo form. Save it as 'Email.php' and put your own email address in $toText="youremail@yourdom ain.com"; It POSTs to itself so it ends up on it's own page instead of another page.
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
# some settings of POST vars
if (!isset($_POST['send'])) $send = ''; else $send = $_POST['send'];
if (!isset($_POST['toText'])) $toText = ''; else $toText = $_POST['toText'];
if (!isset($_POST['ccText'])) $ccText = ''; else $ccText = $_POST['ccText'];
if (!isset($_POST['subjectText'])) $subjectText = ''; else $subjectText = $_POST['subjectText'];
if (!isset($_POST['msgText'])) $msgText = ''; else $msgText = $_POST['msgText'];
if (!isset($_POST['ccText'])) $ccTexth = ''; else $ccText = $_POST['ccText'];
if (!isset($_POST['bccText'])) $bccText = ''; else $bccText = $_POST['bccText'];
if (!isset($_POST['nameText'])) $nameText = ''; else $nameText = $_POST['nameText'];
if (!isset($_POST['fromText'])) $fromText = ''; else $fromText = $_POST['fromText'];
if ($send == "") {
$title="Test Email Page";
$announce="---";
}
else {
if($fromText === "") die("No name!");
$toText="youremail@yourdomain.com";
$title="Test Email Page";
$announce="Your Message has been Sent!";
$header = "From: ".$fromText."\r\n";
// $header .= "Cc: ".$ccText."\n";
$header .= "Reply-To : ".$fromText."\r\n";
$header .= "Return-Path : ".$fromText."\r\n";
$header .= "X-Mailer: PHP\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
// ini_set(sendmail_from,$fromText);
mail($toText, $subjectText, $msgText, $header, '-f'.$fromText);
// ini_restore(sendmail_from);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo($title)?></title>
<style type="text/css">
<!--
A:link { color: #999999; }
A:visited { color: #999999; }
A:hover {color: #0099ff;}
-->
</style>
<script type="text/javascript">
<!--
function check()
{
var at=document.getElementById("fromText").value.indexOf("@");
var eml=document.getElementById("fromText").value;
var nam=document.getElementById("nameText").value;
var alerttxt="";
var submitOK="true";
if (eml.length < 5 || at == -1)
{
alerttxt=alerttxt+"Please enter a valid e-mail address!\r\n";
submitOK="false"
//return false;
}
if (nam.length < 3)
{
alerttxt=alerttxt+"Please enter your name.\r\n";
submitOK="false"
//return false;
}
if (submitOK=="false")
{
alert(alerttxt);
return false;
}
}
// -->
</script>
</head>
<body bgcolor="#ddeedd">
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" summary="" width="580">
<tr><td align="center">
<?php
if ($send != "") {
echo ("To: ".$toText."<br>\r\nSubject: ".$subjectText."<br>\r\n".$msgText."<br>\r\n".$header);
}
?>
<p><b><font color="#000000" size="5">Test Email</font></b></p>
<font size="4" color="#000000">
<!-- <form method="POST" action="<?php echo($PHP_SELF)?>"> -->
<form method="POST" action="Email.php" onsubmit="return check();">
<p><font size="3"><b>Name: <input type="text" name="nameText" id="nameText" size="46"></b></font></p>
<p><font size="3"><b>Email: <input type="text" name="fromText" id="fromText" size="46"></b></font></p>
<input type="hidden" name="subjectText" value="Web Mail">
<p><font face="Arial" size="3"><b>Message Text:</b></font></p>
<p><font face="Arial" size="3"><b><textarea rows="6" name="msgText" cols="60"></textarea></b></font></p>
<p><font size="3"><b><input type="submit" value="Send" name="send" style="font-family: Arial; font-size: 12pt; font-weight: bold"></b></font></p>
<input type="hidden" name="state" value="1">
</form>
<b><font face="Arial" size="4" color="#e00000"><?php echo($announce)?></font></b><br><br>
</font>
</td></tr>
</table>
</div>
</body>
</html>
You just need to add one line of code after calling mail function to redirect the browser to the original page.
mail($to,$email_subject,$email_body,$headers);
header('Location: ' . $_SERVER['HTTP_REFERER'] );
?>
ASKER
I used this code to get back to the original page.
$_REQUEST['return_url'] = '/index.html';
header("Refresh: 3; URL=" . $_REQUEST['return_url']); // this will do the redirect
$today = date('F j, Y \a\t g:iA');
But thanks for your comment, it is definitely thorough and will help me in the future.
$_REQUEST['return_url'] = '/index.html';
header("Refresh: 3; URL=" . $_REQUEST['return_url']); // this will do the redirect
$today = date('F j, Y \a\t g:iA');
But thanks for your comment, it is definitely thorough and will help me in the future.
Thanks for the points. The design pattern that puts the action script and the form script together into one script file is something that I have found very useful - it helps me keep things organized and all in one place. Best of luck with it, ~Ray
Open in new window
above code may help you.....
check this,
http://forums.htmlhelp.com/index.php?showtopic=1090