有php mail()表单的问题

Ful*_*al5 1 html php email html5

我是php的新手,无法弄清楚这有什么问题.任何帮助,将不胜感激.此外,有一种方法可以测试它是我还是我的主机服务不允许我发送电子邮件.所以,如果我有办法,我可以告诉我.

 <?php
session_start();
 $visitor_email = '';
$user_message = '';

//Validates the email address that the user entered
function spamcheck($field)
  {
  // Sanitize e-mail address
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
// Validate e-mail address
if(filter_var($field, FILTER_VALIDATE_EMAIL))
  {
  return TRUE;
}
else
{
return FALSE;
}
}


//When user clicks 'submit'
if (!isset($_POST['submit']))
{
$visitor_email = $_POST['email'];
$user_message = $_POST['message'];
//if user entered email address
if (isset($_POST['email']))
    {
    // Check if email address is valid
    $mailcheck = spamcheck($visitor_email);
        if ($mailcheck==FALSE)
            {
            echo "Invalid input";
            }
        else
            {
            $to = "example@yahoo.com";
            $subject="Customer Feedback";
            $from = $visitor_email;
            $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

            $body = "A patron submitted the contact form:\n".
            "Email: $visitor_email \n".
            "Message: \n ".
            "$user_message\n".
            "IP: $ip\n";    

            $headers = "From: $from \r\n";
            $headers .= "Reply-To: $visitor_email \r\n";

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

            header('Location: home.html');
            }
 }
 }
?>

<form id="feedBackForm" action="<?php echo htmlentities($_SERVER['PHP_SELF'])?>" method="post">
                <fieldset id="personal">
                    <legend>Your Information</legend>
                        <label for="email">Contact Email:  </label>
                        <input id="email" name="email" type="email" value='<?php echo htmlentities($visitor_email) ?>'/>
                </fieldset>
                <fieldset id="text">
                    <legend>Message:</legend>
                        <label for="message"></label>
                        <textarea id="message" name="message"><?php echo htmlentities($user_message) ?></textarea>
                </fieldset><p><input type="submit" value="Submit" name="submit"/>
                <input type="reset" value="Reset"/>
                </p>
                </form>
Run Code Online (Sandbox Code Playgroud)

我尝试了几次不同的迭代,这就是我恰好在那一刻

Fun*_*ner 5

if (!isset($_POST['submit']))你告诉它"如果它没有设置,....."

你要 if(isset($_POST['submit']))

(现在告诉它,如果设置了,执行条件语句中的所有内容)

注意:!是逻辑not运算符.

按要求发布 jeroen

编辑:

我在设置了正确的条件语句(删除逻辑not运算符)后测试了代码,并且邮件已成功发送和接收.因此,您需要检查您的服务器是否设置为处理邮件,或检查您的垃圾邮件以及服务器日志.