首页 > 解决方案 > PHP C联系表格

问题描述

我试图让这个 PHP 表单工作,每次我提交表单时,浏览器都会返回 else 语句但不执行上面的 if 语句,我错过了什么?

    <?php

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $mail = $_POST['mail'];
    $message = $_POST['message'];

    $to = '***.*****@gmail.com';
    $subject='Form submission';
    $message="Name: ".$name."\n". "Wrote the following: "."\n\n".$message;
    $headers="From: ".$mail;

    if (mail($to, $subject, $message, $headers)) {
    echo "<h1>Sent Successfully! Thank you"." ".$name.", I will contact you shortly.</h1>";
    }
    else {
        echo "Something went wrong! Contact me at alec.dannmayr@gmail.com";
    }
}

?>
        <input type="text" name="name" placeholder="Full Name">
        <input type="text" name="mail " placeholder="Email">
        <input type="text" name="subject" placeholder="Subject">
        <textarea name="message" placeholder="Message" cols="30" rows="10"></textarea>
        <input type="submit" name="submit"></input>
      </form>

标签: phpformscontact-form

解决方案


你的mail()功能有问题。如果有任何触发,请尝试查看您的邮件日志。通常位于 /var/log/mail.log 或 /var/log/mail.err 下,具体取决于您的配置。您是否尝试过发送不带标题的邮件(只是为了尽量减少可能的错误)。

配置 mail() 函数以使其正常工作可能会很痛苦。看这篇文章,它可能会给你一个提示。您是否有理由使用更高级的技术 mail() 函数?您可以使用 fe https://github.com/PHPMailer/PHPMailer,它支持更好的错误/调试管理。


推荐阅读