2017-09-07 23 views
0

これまでに同様の問題が掲載されていることを非常に認識しています。私はこれを解決するためにすべてを試みました。私を狂ってしまう。この問題以外はすべて正常に動作します。非常に単純なHTML/PHPフォームの問題

ユーザーが連絡先フォームに記入して送信します。フォームは私のサーバーの電子メールに完全に電子メールで送信されます。しかし、電子メールの内容はそこにはありません。基本的には、私の変数がデータを格納していないかのようです。下のスクリーンショットを見てください。

The email in the inbox

画像は、被写体が正常に動作することを示していると正常に動作しますが、次の変数は動作しません:

$name = $_POST['name']; 
$number = $_POST['number']; 
$email = $_POST['email']; 
$yourmessage = $_POST['yourmessage']; 

以下の私のHTMLやPHPのコードを参照してください。

PHP

<?php 

$to = 'HIDDEN.co.uk'; 
$subject = 'New message from customer'; 

$name = $_POST['name']; 
$number = $_POST['number']; 
$email = $_POST['email']; 
$yourmessage = $_POST['yourmessage']; 

$body = <<<EMAIL 

Hello. 
<br><br> 
Name: $name. 
<br> 
Telephone: $number. 
<br><br> 
$yourmessage 

EMAIL; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
$headers .= 'From: ' .$email. "\r\n"; 

mail($to,$subject,$body,$headers); 
header("location:../../../.../index.html"); 

?> 

HTML

<form action="glossary/js-blueprints/js-contact-form/js-contact-form.php./" method="post" id="contact-form" class="contact-form"> 

        <div class="row"> 
         <div class="col-md-6"> 
         <div class="form-group"> 
          <input type="text" class="form-control" name="name" autocomplete="off" id="name" placeholder="Full name"> 
         </div> 
        </div> 

         <div class="col-md-3"> 
         <div class="form-group"> 
          <input type="number" class="form-control" name="number" autocomplete="off" id="number" placeholder="Telephone number"> 
         </div> 
         </div>      

         <div class="col-md-3"> 
         <div class="form-group"> 
          <input type="text" class="form-control" name="email" autocomplete="off" id="email" placeholder="Email Address"> 
         </div> 
         </div> 

        </div> 

        <div class="row"> 
         <div class="col-md-12"> 
         <div class="form-group"> 
          <textarea class="form-control textarea" rows="3" name="yourmessage" id="yourmessage" placeholder="Your message..."></textarea> 
         </div> 
         </div> 
        </div> 

        <div class="row"> 
        <div class="col-md-12"> 
        <button type="submit" class="btn main-btn pull-right">Send a message</button> 
        </div> 
        </div> 
       </form> 

私のような初心者くさいを助けるためにあなたの時間を割いていただきありがとうございます。

ルイス。

+0

ポスト配列の内容を確認できるようにecho print_r($ _ POST)することはできますか? – victor

+2

実際にはprint_r($ _ POST) – victor

+0

私はPHPの一番下にecho print_r($ _ POST)を追加しましたが、何も生成されませんでした。 $ nameを指定したNameの後に –

答えて

0

ヘッダーの形式が正しくありません。また、あなたの$ bodyはひどくフォーマットされています。また、適切な対策を講じるために、電子メールで送信しようとしているデータを解析する必要があります。 IEと名前と電子メールを設定する必要がありますか?検証済みのメールであれば重要ですか?通常は自分のメールを送信する前にチェックするか、データを保存するだけです。

$body = "Hello.<br /><br /> 
Name: " . $name . "<br /> 
Telephone: " . $number . "<br /><br /> 
" . $yourmessage; 

$headers = "MIME-Version: 1.0 \r\n"; 
$headers .= "Content-type: text/html; charset=utf-8 \r\n"; 
$headers .= "From: " . $email . "\r\n"; 
+1

コードに構文エラーがあります。ハイライトを参照してください。 – Qirel

+0

OPのヘッダーに何が問題なのですか?私はその違いを見ない。 – showdev

+0

お返事ありがとうございます。これは私の問題を解決していないようだ。ありがとうございました。他に何か提案していますか? –

関連する問題