PHP联系表不起作用 - 不发送消息

时间:2017-03-21 16:08:12

标签: php html

如果这非常荒谬,我从未使用过PHP。我正在努力让我的联系表格起作用。这是我的HTML:

<form method="post" action="contact-form.php">

            <div class="input-third">

                <label for="name">Name: <small>*</small></label>
                <br>
                <input class="input"  type="text" name="name" placeholder="John Smith" />

            </div>

            <div class="input-third">

                <label for="email">Email: <small>*</small></label>
                <br>
                <input class="input"  type="text" name="email" placeholder="mail@example.com" />

            </div>

            <div class="input-third">

                <label for="phone">Phone:</label>
                <br>
                <input class="input"  type="text" name="phone" placeholder="Type Here" />

            </div>

            <br>
            <br>

            <label for="message">Message: <small>*</small></label> <br>
            <textarea class="message" name="message" placeholder="Write a message to us"></textarea>

            <br>

            <label>*What is 2+2? (Anti-spam)</label>
            <input name="human" placeholder="Type Here">

            <input class="submit" type="submit" value="Send" name="submit">

        </form>

这是PHP:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$from = 'From: IPS Facilities Contact Form';
$to = 'noah.searle@gmail.com';
$subject = 'Enquiry';
$human = $_POST['human'];

$body = "From: $name\n E-Mail: $email\n Message: $message\n";

if ($_POST['submit'] && $human == '4') {
    if (mail ($to, $subject, $body, $from)) { 
        echo '<p>Your message has been sent!</p>';
    } else { 
        echo '<p>Something went wrong, go back and try again!</p>'; 
    }
} else if ($_POST['submit'] && $human != '4') {
    echo '<p>You answered the anti-spam question incorrectly!</p>';
}
?>

当我点击提交时,它会显示已发送的消息但我还没有收到任何消息!我确定这是愚蠢的,但我会很感激一些意见!

4 个答案:

答案 0 :(得分:1)

认为这可能已在评论或其他答案中得到解答,但我认为我只是添加此内容供您参考,也适用于未来的读者。

如果您遇到错误500,则表示您的PHP代码中存在错误。您可以将错误报告设置为&#39; on&#39;在您的PHP中通过将以下内容添加到您的php文件的顶部:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

如果您添加,然后重新加载前端,您应该获得有关错误的更多详细信息,它可以帮助您解密问题并修复它。

答案 1 :(得分:0)

$ message = $ _POST ['message'] //你错过了;

答案 2 :(得分:0)

在$ message = $ _POST ['message']上缺少分号,并且您的邮件功能缺少针对变量的美元符号。

答案 3 :(得分:0)

你错过了 $ message = $ _POST ['message'] 中的分号 你错过了这里的$ sign if(mail(to,subject,message,from))

并确保您的php文件名为 contact-form.php