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

时间:2015-03-04 17:33:00

标签: php networking internal-server-error

为什么这个php脚本导致" NetworkError:500内部服务器错误"? 它只是我的网站上的联系表单的一个小脚本,每次我点击按钮发送表单错误cums up,因为你可以看到它不是我做的所以我不能自己找到错误.. 先感谢您!

 <?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! 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\n";
            $email_content .= "Email: $email\n\n";
            $email_content .= "Message:\n$message\n";

            // 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 个答案:

答案 0 :(得分:0)

函数http_response_code()需要PHP 5.4.0(参见:php.net)。
您正在使用PHP / 5.3.29。