为什么这不起作用?

时间:2013-11-25 19:21:08

标签: php

我有这个小脚本发送电子邮件!但它不起作用......首先它说我的变量没有被定义然后,它们确认我已经发送了消息,但它确实没有发生!

Name:      
        <form action="contactus.php" method="POST">
            <input type="text" size="32" value="" name="name">
        </form> <br><br>
    E-Mail: &nbsp;&nbsp;&nbsp;&nbsp;
        <form action="contactus.php" method="POST">
            <input type="text" size="32" value="" name="header">
        </form> <br><br>
    Subject: &nbsp;&nbsp;
        <form action="contactus.php" method="POST">
            <input type="text" size="32" value="" name="subject">
        </form> <br><br>
    Message: <br>
    <form action="contactus.php" method="POST">
        <textarea rows="10" cols="40" name="message" value=""></textarea>
    </form>
    <br><br>

    <form action="contactus.php" method="POST">
        <input type="submit" value="Submit" name="submit">
    </form>


    <?php

    // php script to send emails 

    $to = 'some@email.com';

    if (isset ($_POST['message'])) {
        $message = "$name" . "<br><br>" . $_POST['message'];
    }


    if (isset ($_POST['header'])) {
        $header = "From:" . $_POST['header'];
    }


    if (isset ($_POST['subject'])) {
        $subject = ($_POST['subject']);
    }

    if (isset ($_POST['name'])) {
        $name = ($_POST['name']);
    } 




    if (isset($_POST['submit'])){
    mail($to, $subject, $message, $header);
    echo "Your message has been sent!";
    }



    //end of the php script

    ?>

如果你们中的一些人可以帮助我会很棒!

谢谢。

3 个答案:

答案 0 :(得分:1)

您不能使用所有这些不同的form元素。您使用的是5个单独的表单,唯一提交的表单是带有submit按钮的表单。

因此,在提交表单时,会设置$_POST['submit'],但不存在其他表单。

所以你需要你的HTML:

<form action="contactus.php" method="POST">
    Name: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" size="32" value="" name="name"><br><br>
    E-Mail: &nbsp;&nbsp;&nbsp;&nbsp;
    <input type="text" size="32" value="" name="header"><br><br>
    Subject: &nbsp;&nbsp;
    <input type="text" size="32" value="" name="subject"><br><br>
    Message: <br>
    <textarea rows="10" cols="40" name="message" value=""></textarea><br><br>

    <input type="submit" value="Submit" name="submit">
</form>

contactus.php

<?php
$to = 'some@email.com';
if(isset($_POST['message']) && isset($_POST['header']) &&
   isset($_POST['subject']) && isset($_POST['submit']) &&
   @mail($to, $_POST['subject'], $_POST['message'], $_POST['header'])) {
    echo "Your message has been sent!";
}else{
    echo "There has been a problem.";
}
?>

答案 1 :(得分:0)

尝试:

if(mail($to, $subject, $message, $header)) {
    echo "Mail sent successfully.";
} else {
    echo "PHP's mail() function failed!";
}

答案 2 :(得分:0)

为什么每个输入元素都有一个Form元素? 您应该将所有元素放在一个表单中。