0

キャプチャのない、スパムをブロックするお問い合わせフォームを作ろうとしています。ユーザーから見ると、送信ボタンをクリックするとお礼のページが表示されるので、機能しているように見えます。

問題 #1 : 届いた電子メールが空白で、送信されたメッセージの内容がまったく含まれていません。似ているように聞こえる投稿を見つけましたが、提供された提案は当てはまりませんでした: Contact form problem - I do receive messages, but no content (blank page) .

問題 #2 : 返信メッセージもフォーム ユーザーのアドレスに送信されるのではなく、同じ受信トレイに表示されます。これはテスト時に自分のものです。

HTML:

<form method="post" action="submit.php">
 <p>Name:<br>
 <input type="text" name="Name" id="Name" /></p>

 <p>Phone:<br>
 <input type="text" name="Phone" id="Phone" /></p>

 <p>Email:<br>
 <input type="text" name="Email" id="Email" /></p>

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

 <p style="color:#06C;">Forward to:<br>
 <input type="text" name="Forwardto" id="Forwardto" /></p>

 <p>Message:<br />
 <textarea name="Message" rows="20" cols="20" id="Message"></textarea></p>

 <p><input type="submit" value="Send" class="submit-button" /></p>
</form>

PHP (実際のアドレスは削除されています):

<?php

if(isset($_POST['url']) && $_POST['url'] == ''){

    $youremail = '----@----.com';

    $body = "This is the form that was just submitted:
    Name:  $_POST[name]
    Phone:  $_POST[phone]
    E-Mail: $_POST[email]
    Forward to: $_POST[forwardto]
    Message: $_POST[message]";

    if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
      $headers = "From: $_POST[email]";
    } else {
      $headers = "From: $youremail";
    }

    mail($youremail, 'Contact Form', $body, $headers );

}

?>

関連する CSS:

<style type="text/css">
.antispam { display:none;}
</style>

上記のコードの問題です。. . または何か他のことが起こっている可能性がありますか?

4

2 に答える 2

0

最初に見積もりを閉じる必要があります この変数は、GET メソッドと POST メソッドの両方で送信されたデータを収集するために使用されるスーパーグローバル配列であるため、$_POST の代わりに $_REQUEST を使用すると言います。私はこれを試してみましたが、(isset($_REQUEST['email'])) ここにコードを入力すると動作します`{

      //Email information
      $admin_email = "myemail.co.uk";
      $subject = "This is the form that was just submitted";
      $email = $_REQUEST['email'];
      $comment = $_REQUEST['comment'];
      $full_name = $_REQUEST['full_name'];

      //send email
      mail($admin_email, "$subject", "message:" . $comment, "From:" . $email,     `enter code here`enter code here`$full_name);

       //Email response if needed
      echo "Thank you for contacting us!";
       }

      //if "email" variable is not filled out, display the form
       else  
        {
        enter code here`enter code here`?>
        enter code here`<p>Email us at <i>website name.com</i></p>
        enter code here`<?php
        enter code here`}
        enter code here`die();
        enter code here`?>
于 2016-05-03T00:48:32.773 に答える
0

$_POST['email']フィールドの名前がemail(小文字の "e")のときにアクセスしようとしています-$_POST['Email']代わりに使用してみてください

2 番目の問題 -mail()関数の最初の引数は、送信先の電子メール、つまり$_POST['Email']. 現在、ハードコードされた に送信しようとしています$youremail

于 2013-05-09T14:41:24.150 に答える