发送电子邮件的Web表单不起作用


Web form to send email not working

我只需要一个非常基本/简单的表单来发送电子邮件,但它似乎不起作用,我不知道为什么?我知道代码不是很先进,可能看起来很"丑陋",但它可以满足我对的"需求"

if (isset($_POST['email']))
{
    $full_name = $_POST['fullName'];
    $phone = $_POST['phoneNumber'];
    $adMessage = $_POST['emailMessage'];
    //send email
    $to = "info@lalalalala.co.uk";
    $from = $_POST['emailAddress'];
    $subject = $_POST['emailSubject'];
    $message = "Full name: " . $full_name . "'n";
    $message .= "Phone number: " . $phone . "'n";
    $message .= "Email Address: " . $from . "'n";
    $message .= "Additional Message: " . $adMessage;

    $headers = "From:" . $full_name;
    mail($to, $subject, $message, $headers);
}

HTML

<form action='' method='post'>
    <fieldset><label id="fullName">Full Name</label>
    <input type="text" name="fullName" value="Please Enter Your Full Name" onclick="this.value=''"  /></fieldset>
    <fieldset><label id="emailAddress">Email Address</label>
    <input type="text" name="emailAddress" value="Please Enter Your Email Address" onclick="this.value=''"  /></fieldset>
    <fieldset><label id="phoneNumber">Phone Number</label>
    <input type="text" name="phoneNumber" value="Please Enter Your Phone Number" onclick="this.value=''"  /></fieldset>
    <fieldset><label id="emailSubject">Email Subject</label>
    <input type="text" name="emailSubject" value="Please Enter Email Subject" onclick="this.value=''"  /></fieldset>
    <fieldset><label id="emailMessage">Your Message</label>
    <textarea cols="10" rows="20" name="emailMessage" onclick="this.value=''" >Please Enter Your Message</textarea></fieldset>
    <fieldset><input type="image" src="images/submit.png" id="submit" onclick="show_alert();" /></fieldset>
</form>

谢谢:)

您尚未设置任何名为email的输入。您的第一个条件不会被评估为true,所以您可以跳过下面的所有内容。

更改

if (isset($_POST['email']))

if($_SERVER['REQUEST_METHOD'] == 'POST')

您的表单没有名为email的元素,因此它永远不会进入该if块。替换检查请求方法是否为POST,即是否发布了表单。

我在您的表单中看不到任何名为电子邮件input field,您在您的情况下正在使用它,即

if (isset($_POST['email'])){....}

有一个名为emailAddress的字段,因此使用:

if (isset($_POST['emailAddress'])){....}

希望这能有所帮助。