簡體   English   中英

我的php郵件聯系表有什么問題?

[英]What is wrong with my php mail contact form?

我正在為我的網站的聯系表單使用模板。 問題是,當我在服務器上對其進行測試時,無法發送消息。 它只會給我我的錯誤消息,而不會發送。 我將原始的發送文本翻譯成德語時發生了什么變化?

我試過調試vars。 我也嘗試echo一些字符串輸入。

這是html代碼:

                        <form id="contact-form" action="mail.php" method="post">
                        <div class="row">
                            <div class="col-md-6 form-group">
                                <label class="sr-only">Name</label>
                                <input type="text" class="form-control input-lg" name="name" placeholder="Name" >
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="col-md-6 form-group">
                                <label class="sr-only">Email</label>
                                <input type="email" class="form-control input-lg" name="email" placeholder="Email" >
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="col-md-12 form-group">
                                <label class="sr-only">Betreff</label>
                                <input type="text" class="form-control input-lg" name="subject" placeholder="Betreff" >
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="col-md-12 form-group">
                                <textarea class="form-control input-lg" rows="7" name="message" placeholder="Nachricht"></textarea>
                                <p class="help-block text-danger"></p>
                            </div>
                            <div class="col-md-12 text-center">
                                <button type="submit" class="btn btn-lg btn-round btn-dark">Senden</button>
                            </div>
                        </div>
                    </form>

PHP:

<?php

//  POST GET.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Form Felder GET.
    $name = strip_tags(trim($_POST["name"]));
            $name = str_replace(array("\r","\n"),array(" "," "),$name);
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
    $subject = trim($_POST["betreff"]);
    $message = trim($_POST["nachricht"]);

    // Check ob Daten an den mailer.
    if ( empty($name) OR empty($subject) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        // 400 (bad request) und raus.
        http_response_code(400);
        echo "Bitte füllen Sie alle Felder aus.";
        exit;
    }

    // Empfaenger.
    $recipient = "info@test.de";

    // Betreff.
    $subject = "Neue Anfrage von $name";

    // Inhalt.
    $email_content = "Name: $name\n";
    $email_content .= "Email: $email\n\n";
    $email_content .= "Betreff: $subject\n\n";
    $email_content .= "Nachricht:\n$message\n";

    // Header.
    $email_headers = "Von: $name <$email>";

    // Senden.
    if (mail($recipient, $subject, $email_content, $email_headers)) {
        // 200 (okay).
        http_response_code(200);
        echo "Vielen Dank! Deine Nachricht wurde versendet.";
    } else {
        // 500 (internal server error).
        http_response_code(500);
        echo "Oops! Hier ist ein Fehler passiert, deine Nachricht konnte nicht gesendet werden.";
    }

} else {
    // 403 (forbidden).
    http_response_code(403);
    echo "Es gibt Probleme mit deiner Anfrage, bitte versuche es ernuet.";
}

?>

您輸入的主題名稱是用英語填寫的形式,但您的php文件則是德語的

為所有代碼選擇相同的lang可以避免混淆

將名稱屬性更改為德語以使其工作

<input type="text" class="form-control input-lg" name="betreff" placeholder="Betreff" >
<textarea class="form-control input-lg" rows="7" name="nachricht" placeholder="Nachricht">
</textarea>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM