简单的PHP联系表 - 2天的痛苦

时间:2016-07-08 10:57:33

标签: php html5 forms

我没有使用PHP的实际经验,因此只需从各种答案中提取一些代码来帮助构建一个简单的PHP联系表单。我花了两天时间试图弄清楚为什么各种变化都不起作用。我已经包含了我的代码:

HTML:

    <section class="form-section" id="form-section">
    <div class="row headline">
        <h3>Free Quotation</h3> </div>
    <div class="row">
        <form action="mailer.php" method="post" name="htmlform" class="contact-form" target="_blank">
            <div class="col span-1-of-2">
                <div class="row inputs">
                    <label for="name">Name</label>
                    <input name="name" placeholder="Your name" required="" type="text"> </div>
                <div class="row inputs">
                    <label for="email">Email</label>
                    <input name="email" placeholder="Your email" required="" value="" type="email" class="required email"> </div>
                <div class="row inputs">
                    <label for="business_name">Business Name</label>
                    <input value="" name="business_name" placeholder="Your business name" required="" type="text" class=""> </div>
            </div>
            <div class="col span-1-of-2 message-box-container">
                <label class="text-box-label" for="message">In a few words, what are you looking for?</label>
                <textarea name="message" placeholder="Your message"></textarea>
            </div>
            <div class="row form-messages">
                <?php 
                       if($_GET['success'] == 1) {
                    echo "<div class="success">Thank You! We'll aim to follow up as soon as possible</div>";
                       }

                    if($_GET['success'] == -1) {
                    echo "<div class="error">Oops something went wrong, please try again</div>";
                    }
                    ?> </div>
            <div class="col span-2-of-3">
                <div class="clear">
                    <input type="submit" value="Find Out More" name="subscribe" class="button"> </div>
            </div>
        </form>
    </div>
</section>

这是我的mailer.php表格:

<?php

    // Get the form fields, removes html tags and whitespace.
    $name = strip_tags(trim($_POST["name"]));
    $name = str_replace(array("\r","\n"),array(" "," "),$name);
    $business_name = strip_tags(trim($_POST["business-name"]));
    $business_name = str_replace(array("\r","\n"),array(" "," "),$business_name);
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $message = trim($_POST["message"]);

    // Check the data.
    if (empty($name) empty($business_name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header("Location: http://www.thegreenbuddha.co.uk/index.php?success=-1#form");
        exit;
    }

    // Set the recipient email address. Update this to YOUR desired email address.
    $recipient = "chussell@thegreenbuddha.co.uk";

    // Set the email subject.
    $subject = "New contact from $name";

    // Build the email content.
    $email_content = "Name: $name\n";
    $email_content .= "Email: $email\n\n";
    $email_content .= "Message:\n$message\n";
    $email_content .= "Business Name: $business_name \n";

    // Build the email headers.
    $email_headers = "From: $name <$email>";

    // Send the email.
    mail($recipient, $subject, $email_content, $email_headers);

    // Redirect to the index.html page with success code
    header("Location: http://www.thegreenbuddha.co.uk/index.php?success=1#form");

?>

当我在实时预览中有这个时,成功和错误消息都会显示PHP代码。我将文件保存为index.php。当我提交它时,打开一个空白的新页面。

当我将新的index.php和mailer.php添加到我的cpanel时,我的网站就不再显示了!

有任何建议或改进吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

以下

<?php 
    if($_GET['success'] == 1) {
       echo "<div class="success">Thank You! We'll aim to follow up as soon as possible</div>";
    }
    if($_GET['success'] == -1) {
        echo "<div class="error">Oops something went wrong, please try gain</div>";
    }
?>

<?php 
     if($_GET['success'] == 1) {
        echo '<div class="success">Thank You! We\'ll aim to follow up as soon as possible</div>';
     }
     if($_GET['success'] == -1) {
         echo '<div class="error">Oops something went wrong, please try gain</div>';
      }
 ?>

以下

if (empty($name) empty($business_name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
  header("Location: http://www.thegreenbuddha.co.uk/index.php?success=-1#form");
  exit;
}

if (empty($name) || empty($business_name) || empty($message) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
  header("Location: http://www.thegreenbuddha.co.uk/index.php?success=-1#form");
   exit;
}

请更改以下内容:

$business_name = strip_tags(trim($_POST["business-name"]));

进入

$business_name = strip_tags(trim($_POST["business_name"]));