php - 我怎样才能消除这个脚本中对 die() 的使用,以便底部的 HTML 仍然运行?

标签 php html css die

当我最初编写此脚本时,站点设计不需要在 die() 函数之后执行 html。现在可以了。我意识到我可以将 HTML 代码的末尾复制到每个 die() 语句中,但它包含一个 php 包含文件 (footer.inc.php),然后忽略该文件。 (这是我目前正在使用的解决方法,因此页面看起来不错,但不包含页脚。)

我尝试将第一个序列中的 die() 函数切换为 if() 和 elseif() 函数,但随后它同时显示 die() 消息和表明电子邮件功能成功的电子邮件代码之后的消息。

我确信有一种方法可以让脚本在不使用 die() 的情况下仅执行这些语句中的一个,但我无法弄清楚。任何提示将不胜感激!

<!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, $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>');
        }
        ?>
        </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> 

最佳答案

您可以构建一个$error 变量并在尝试发送电子邮件之前检查它。类似的东西:

$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

关于php - 我怎样才能消除这个脚本中对 die() 的使用,以便底部的 HTML 仍然运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590154/

相关文章:

php - 组合两个正则表达式函数来剥离 html 标签

javascript - jQuery 禁用悬停效果 onClick

html - Angular 2 表单验证错误 "Unhandled Promise rejection: Cannot assign to a reference or variable!"

html - 隐藏第二层和第三层菜单以在悬停时显示

php - Javascript 和 jQuery 转义引号

php - 从数组创建mysql表

php - curl 替代要求文件而不是 allow_url_fopen?

html - 未应用悬停时的 Css 样式

javascript - 添加重要的 css 媒体查询

ios - 在从主屏幕打开的 Web 应用程序中,如何在 iOS 中设置不同的样式?