How can I eliminate the use of die() in this script, so that the HTML at the bottom still runs?
When I initially wrote this script, the site design did not require the execution of the html after the die() functions. Now it does. I realize I can copy the end of the HTML code into each of the die() statements, but it contains a php include file (footer.inc.php) which is then ignored. (This is the workaround that I am going with at the moment, so the page looks OK but does not contain the footer.)
I tried switching the die() functions in the first sequence to if() and elseif() functions, but then it displays both the die() message and the message after the email code that indicates the email function was successful.
I am sure there is a way to have the script execute only one of these statements without using the die(), but I can't figure it out. Any tips would be greatly appreciated!
<!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" >
<head>
<meta name="google-site-verification" content="0QW3jKsbHBGLvnLgLIoSHRuxjHBUI_MMQ0wn9J-4eo4" />
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<link href="../stylesheet.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="../images/favicon.ico" type="image/jpg" />
<title>Center Court - Schedule a racquet pick-up</title>
</head>
<body>
<div id="container">
<div id="liquid-round">
<div class="top"><span></span></div>
<div class="center-content">
<div id="header">
<?php include("../header2.inc.php"); ?>
</div>
<div id="nav">
<?php include("../nav.inc.php"); ?>
</div>
<div id="phpscreen">
<?php
//retrieve details from POST submission
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$city = $_POST['city'];
$retrieval = $_POST['retrieval'];
$needed = $_POST['needed'];
$string = $_POST['string'];
$outofstock = $_POST['outofstock'];
$tension = $_POST['tension'];
$scale = $_POST['scale'];
$extras= $_POST['extras'];
$notes = $_POST['notes'];
//validate sumbitted data
if (empty($name)){
die('<p class="center">Please provide your name.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
if (empty($email)){
die('<p class="center">Please provide your email.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
if (empty($phone)){
die('<p class="center">Please provide your phone number.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
if (empty($address)){
die('<p class="center">Please provide your address.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
if (empty($city)){
die('<p class="center">Please provide your city.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
if (empty($needed)){
die('<p class="center">Please provide the date and time you need your racquet.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
//formulate email message
$to = 'centercourtstringing@yahoo.com';
$from = 'centercourtstringing.com';
$subject = 'Contact from centercourtstringing.com';
$body = "
Name: $name\r\n
Email: $email\r\n
Phone number: $phone\r\n
Address: $address\r\n
City: $city\r\n
Retrieval method: $retrieval\r\n
Needed by: $needed\r\n
String type: $string\r\n
Similar or upgrade OK: $outofstock\r\n
Tension: $tension\r\n
Unsure scale: $scale\r\n
Extras: $extras\r\n
Special requests or notes: $notes\r\n";
if(mail($to, $subje开发者_如何学JAVAct, $body, "From $from")){
echo '<p>Your pick-up has been requested. You should receive confirmation shortly via e-mail or phone. If you do not hear from us by the end of the day, please call Center Court Tennis Shop at 203-966-2543.</p><p class="center"><a href="http://centercourtstringing.com">Return to home page</a></p>';
}else{
die('<p>Sorry, there was a mail delivery error. please call Center Court Tennis Shop at 203-966-2543 to schedule your pick-up.</p><p class="center"><a href="http://centercourtstringing.com">Return to home page</a></p>');
}
?>
</div>
<div id="footer">
<?php include("../footer.inc.php"); ?>
</div> <!--end footer-->
</div><!--end center content-->
<div class="bottom"><span></span></div>
</div><!--end liquid-round-->
</div><!--end container-->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-18191457-2']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script></body> </html>
You can build an $error
variable and check it before attempting the email. Something along the lines of:
$error = '';
//validate sumbitted data
if (empty($name)){
$error .= '<p class="center">Please provide your name.</p>';
}
if (empty($email)){
$error .= '<p class="center">Please provide your email.</p>';
}
// etc...
if (empty($error)) {
//formulate email message
$to = 'centercourtstringing@yahoo.com';
$from = 'centercourtstringing.com';
$subject = 'Contact from centercourtstringing.com';
// etc...
if (mail($to, $subject, $body, "From $from")) {
echo '<p>Your pick-up has been requested...</p>';
} else {
die('<p>Sorry, there was a mail delivery error...');
}
} else {
echo $error;
echo '<form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>';
}
// Rest of HTML
Simply do not use die() because it is programmed to stop your entire script from running. Instead, you should use either the echo or print method to display content on your screen.
Example:
<div id="phpscreen">
<?
//validate sumbitted data
if (empty($name)) {
echo '<p class="center">Please provide your name.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>';
}
else if (empty($email)) {
...
}
....
else {
if(mail($to, $subject, $body, "From $from")) {
...
}
else {
...
}
} ?>
</div>
And then use "else if" for all the other checks. Else you will show 10 forms if you do not fill in 10 fields. :)
Change your if and mail sending statements into an if-elseif-else block
//validate sumbitted data
if (empty($name)){
echo('<p class="center">Please provide your name.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
elseif (empty($email)){
echo('<p class="center">Please provide your email.</p> <form><p class="center"><input type="button" value="Go back" onClick="history.go(-1);return true;"> </p></form>');
}
//... other validation conditionals...
//None of the above conditionals are true, send the message.
else
{
$to = 'centercourtstringing@yahoo.com';
$from = 'centercourtstringing.com';
$subject = 'Contact from centercourtstringing.com';
$body = "
Name: $name\r\n
Email: $email\r\n
Phone number: $phone\r\n
Address: $address\r\n
City: $city\r\n
Retrieval method: $retrieval\r\n
Needed by: $needed\r\n
String type: $string\r\n
Similar or upgrade OK: $outofstock\r\n
Tension: $tension\r\n
Unsure scale: $scale\r\n
Extras: $extras\r\n
Special requests or notes: $notes\r\n";
if(mail($to, $subject, $body, "From $from")){
echo '<p>Your pick-up has been requested. You should receive confirmation shortly via e-mail or phone. If you do not hear from us by the end of the day, please call Center Court Tennis Shop at 203-966-2543.</p><p class="center"><a href="http://centercourtstringing.com">Return to home page</a></p>';
}else{
die('<p>Sorry, there was a mail delivery error. please call Center Court Tennis Shop at 203-966-2543 to schedule your pick-up.</p><p class="center"><a href="http://centercourtstringing.com">Return to home page</a></p>');
}
}
精彩评论