dsh12544
dsh12544
2015-03-04 17:32
浏览 213
已采纳

为什么这个php脚本导致“NetworkError:500 Internal Server Error”?

Why is this php script causing "NetworkError: 500 Internal Server Error"? Its only a little script for the contact form on my website and every time I click on the button to send the form the error cums up and as you can see its not made by me so I can't find the error by myself.. Thank you in advance!

 <?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("","
"),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! Etwas ist schief gelaufen, ihre Nachricht konnte leider nicht versendet werden.";
                exit;
            }

            // Set the recipient email address.
            // FIXME: Update this to your desired email address.
            $recipient = "hello@youremail.com";

            // Set the email subject.
            $subject = "Eine neue Nachricht von $name";

            // Build the email content.
            $email_content = "Name: $name
";
            $email_content .= "Email: $email

";
            $email_content .= "Message:
$message
";

            // Build the email headers.
            $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 "Dankeschön! Ihre Nachricht wurde versendet.";
            } else {
                // Set a 500 (internal server error) response code.
                http_response_code(500);
                echo "Oops! Etwas ist schief gelaufen, ihre Nachricht konnte leider nicht versendet werden.";
            }

        } else {
            // Not a POST request, set a 403 (forbidden) response code.
            http_response_code(403);
            echo "Es gab ein Problem mit ihrer Eingabe, bitte versuchen sie es erneut.";
        }

    ?>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongzhazhuo0572
    dongzhazhuo0572 2015-03-04 17:52
    已采纳

    The function http_response_code() needs PHP 5.4.0 (see: php.net).
    Your are using PHP/5.3.29.

    点赞 评论

相关推荐