-1

助けてくれてありがとう...

これをフォーム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 に答える