php 表单一直给我 500 错误

php form keeps giving me 500 error

我无法使用联系表。我是 php 的新手,这是我创建的第一个邮件程序,所以我绝对需要一些帮助。

这是我的 HTML 表格

        <form id="ajax-contact" method="post" action="mailer.php">
            <div class="column">
                <label for="name">name</label>
                <input type="text" id="name" name="name" required>
                <label for="email">email address</label>
                <input type="email" id="email" name="email" required>
            </div>

            <div class="column">
                <label for="message">message</label>
                <textarea id="message" required></textarea>
            </div>

            <button type="submit">Send</button>
        </form>

这是我的 mailer.php

<?php
    // My modifications to mailer script from:
    // http://blog.teamtreehouse.com/create-ajax-contact-form
    // Added input sanitizing to prevent injection


    // Only process POST reqeusts.
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Get the form fields and remove whitespace.
        $name = strip_tags(trim($_POST["name"]));
$name = str_replace(array("\r","\n"),array(" "," "),$name);
        $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
        $message = trim($_POST["message"]);


        // Check that data was sent to the mailer.
        if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
            // Set a 400 (bad request) response code and exit.
            http_response_code(400);
            echo "Oops! There was a problem with your submission. Please complete the form and try again.";
            exit;
        }


        $recipient = "thomas.lacroix.e@gmail.com";


        $subject = "New message from $name";


        $email_content = "Name: $name\n";
        $email_content .= "Email: $email\n\n";
        $email_content .= "Message:\n$message\n";


        $email_headers = "From: $name <$email>";


        // Send the email.
        if (mail($recipient, $subject, $email_content, $email_headers)) {
            // Set a 200 (okay) response code.
            http_response_code(200);
            echo "Thank You!";
        } else {
            // Set a 500 (internal server error) response code.
            http_response_code(500);
            echo "Oops! Something went wrong.";
        }


    } else {
        // Not a POST request, set a 403 (forbidden) response code.
        http_response_code(403);
        echo "There was a problem with your submission, please try again.";
    }
?>

我搜索过有类似问题的人,我认为我需要在我的电子邮件主机设置中添加一些内容。不过老实说,我不知道自己在做什么。非常感谢任何帮助!

您的表单似乎忘记包含文本区域的名称,这导致在尝试获取

$_POST['message']

时代码中出现未定义的索引
<textarea name="message" id="message" required></textarea>

执行上述操作为我解决了测试中的问题。