-1

没有按照我应该的方式使用我的 php,感谢您的帮助...

我把它放在html的形式中

<p class="antispam">Leave this empty:
<br /><input name="url" /></p>

这在 css

.antispam { display:none;}

如果 url 字段对于 PHP 来说是空的,那么问题是注释部分?
{curly} 括号对我来说似乎不合适。

<?php

$name = $_POST['name'];
$email = $_POST['email'];
$message = nl2br($_POST['message']);
$todayis = date("l, F j, Y, g:i a") ;
$subject = "Message from Your Website";
$body = "From $name, \n\n$message";
$headers = 'From: '.$email.'' . "\r\n" .
    'Reply-To: '.$email.'' . "\r\n" .
    'Content-type: text/html; charset=utf-8' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

// if the url field is empty
if(isset($_POST['url']) && $_POST['url'] == ''){

mail("me@my.com", $subject, $body, $headers);

}
?>
<!--My callback -->
<div id="mail_response">
    <h3>Thank you <?php echo $name ?>!</h3><br />
    <p>I will answer your message soon as possible.</p><br /><br /><br />
    <h5>Message sent on: </h5>
    <p><?php echo $todayis ?></p>
</div>
4

1 回答 1

1

你可以试试这个

if(isset($_POST['url']) && $_POST['url'] == ''){
    if( mail("me@my.com", $subject, $body, $headers) )
    {
        ?>
            <div id="mail_response">
                <!-- Write html here -->
            </div>
        <?php
    }
    else
    {
        // something went wrong
    }
}

此外,您不应该使用

'Reply-To: '.$email.'' . "\r\n" .

因为,这是发件人的电子邮件地址,您可以使用

$headers = 'From: ' . $email . '\r\n' .
'Reply-To: nobody@example.com' . '\r\n' .
'Content-type: text/html; charset=utf-8' . '\r\n' .
'X-Mailer: PHP/' . phpversion();

此外,您没有检查表单字段,无论它们是否为空,过滤用户输入是一个好习惯。

此外,这不是打击垃圾邮件的好方法,您可以使用验证码

于 2013-05-26T05:07:40.770 回答