我的 php 邮件功能正在发送空白邮件

My php mail function is sending blank messages

因此,正如标题所述,我从联系表中收到了空白电子邮件。 php 代码如下。我检查了 $msg 的值,它显示正确,我也用谷歌搜索了很多,但找不到任何适用于我的标准原因。

<?php
main();

function main() {
    $posted = setVariables();
    $msg = setMessage($posted);
    $result = sendMail($msg);
    userFeedback($result);
}

function setVariables() {
    $name;
    if (isset($_POST['name'])){
        $name=$_POST['name'];
        if ($name == null) {
            $name = "ERROR - name is null";
        }
    }

    $email;
    if (isset($_POST['email'])){
        $email=$_POST['email'];
        if ($email == null) {
            $email = "ERROR - email is null";
        }
    }

    $enquiry;
    if (isset($_POST['enquiry'])){
        $enquiry=$_POST['enquiry'];
        if ($enquiry == null) {
            $enquiry = "ERROR - enquiry is null";
        }
    }

    $message;
    if (isset($_POST['message'])){
        $message=$_POST['message'];
        if ($message == null) {
            $message = "ERROR - message is null";
        }
    }

    $posted = array($name,$email,$enquiry,$message);
    return $posted;
}

function setMessage($posted) {
    $msg = "Name: " . $posted[0] . "\r\nEmail: " . $posted[1] . "\r\nEnquiry: " . $posted[2] . "\r\nMessage: " . $posted[3];
    $msg = wordwrap($msg,70);
    $msg = Trim(stripslashes($_POST['Message']));
    return $msg;
}

function sendMail($msg) {
    $result = mail("social@georgeappleton.co.uk","Contact From Portfolio",$msg, "From: <info@yourdomain.co.uk>");
    return $result;
}

function userFeedback($result) {
    if ($result == false) {
        echo "Message failed to send, please inform me through my email address. social@georgeappleton.co.uk";
    } else {
        echo "Message Sent!<br/><br/>Returning you to <a href='http://www.georgeappleton.co.uk'>georgeappleton.co.uk</a> in 5 seconds";
    }
    echo "<script>setTimeout(function() {window.location = 'http://www.georgeappleton.co.uk';},5000);</script>";
}
?>

谢谢大家,非常感谢

-Shardj

这是你的变量范围。 $name with setVariables()

    $name=$_POST['name'];
    if (strlen($name) < 1) {$name = "ERROR - name is null";}

    $email=$_POST['email'];
    if (strlen($email)  < 1) {$email = "ERROR - email is null";}

    $enquiry=$_POST['enquiry'];
    if (strlen($enquiry)  < 1) {$enquiry = "ERROR - enquiry is null";}

    $posted = array($name,$email,$enquiry,$message);

    $msg = setMessage($posted);
    $result = sendMail($msg);
    userFeedback($result);

去掉这一行:

$msg = Trim(stripslashes($_POST['Message']));

它正在用一个不存在的参数的内容覆盖 $msg。它已包含 $posted[3].

中的消息文本