PHP联系表单邮件功能不起作用

时间:2015-06-02 04:16:48

标签: php html phpmailer contact-form

我一直在尝试为一个网站实现一个PHP联系人,这似乎是我不应该坚持的东西,但我一直遇到麻烦。我一直把我的HTML和PHP放在单独的文件中,我认为这是很好的做法,所以我的设置看起来像这样:

HTML(我的index.php文件)

{
    '1': [{'x':47, 'y': 33}, {'x': 21, 'y': 37}, {'x': 12, 'y': 41}]
    ...
}

PHP(我的脚本目录中的site.php文件)

<head>
    <?php include '../scripts/site.php' ?>
</head>

<form action='../scripts/site.php' method='post'>
    <input type=text class="formfields" placeholder="Name" name="name">
    <br><br>
    <input type=email class="formfields" placeholder="Email" name="contact_email">         <br><br>
    <textarea type=text placeholder="Tell Us About Your Project" name="message"></textarea>
    <br><br>
    <input class="submit" type="submit" value="Send">
</form>

我觉得在尝试让HTML和PHP相互通信时,我的代码可能会出现结构性错误。我认为邮件本身很好,但我可能错了。

我在现场试试这个,所以这不是一个locahost / host问题。 (是的,我知道这个表格不是远程安全的,我打算在我收到正确的邮件后立即修复。)

3 个答案:

答案 0 :(得分:2)

从if语句中删除=。它应该是(!empty())而不是(!=empty())

此外,您从未在第二个if语句中关闭()

if((!empty($name)) && (!empty($contact_email)) && (!empty($message))){

以上一行可以解决很多问题。将其添加到您的脚本中。

答案 1 :(得分:0)

如果您在表单的action属性中引用了PHP代码,则不必包含它。

此外,如果您可以更加具体地了解您所看到的错误,我们将能够更好地为您提供帮助。

刷新当前代码并删除任何可能的错误将引导您到这里。试试这个,如果还有其他错误,请告诉我。

<?php

    if(isset($_POST['name']) && isset($_POST['contact_email']) && isset($_POST['message'])) {

    $name = $_POST['name'];
    $contact_email = $_POST['contact_email'];
    $message = $_POST['message'];

    if(!empty($name) && !empty($contact_email) && !empty($message){
        $to = 'tom.eldridge@hotmail.com';
        $subject = 'contact email';
        $body = $message;
        $headers = 'From: ' .$contact_email;

        mail($to, $subject, $body, $headers);

        if(mail($to, $subject, $body, $headers)){
            echo 'Thanks for contacting us!';
        }
        else{
            echo 'Message could not be sent';
        }
    }
    else{
        echo 'All fields are required';
    }
    }

        ?>

答案 2 :(得分:0)

在PHP中,使用isset或empty时使用$(this).closest('div').next('img').attr('src', $selection); 实际上是以下内容;

NOT EQUAL

您的用法适用于比较以下情况中的值;

if(!empty()){
if(!isset()){

这里可能还有一些其他有用的信息; http://php.net/manual/en/language.operators.comparison.php但在此期间应该会帮助你。