2017-04-06 14 views
0

何らかの奇妙な理由から、ビジネス入力値は電子メールに送信されません。それは常に空白です。誰かが何が間違っているか教えてください。ありがとうございました!PHPフォームは誰にでも電子メールを送ることはできませんか?

<?php 
// Check for empty fields 
if(isset(empty($_POST['submit'])  || 
    empty($_POST['email'])  || 
    empty($_POST['phone'])  || 
    empty($_POST['business']) || 
    empty($_POST['message']) || 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
    { 
    echo "No arguments Provided!"; 
    return false; 
    } 

$name = strip_tags(htmlspecialchars($_POST['name'])); 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
$phone = strip_tags(htmlspecialchars($_POST['phone'])); 
$business = strip_tags(htmlspecialchars($_POST['business'])); 
$message = strip_tags(htmlspecialchars($_POST['message'])); 

// Create the email and send the message 
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to. 
$email_subject = "Website Contact Form: $name"; 
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nBusiness: $business\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
return true;   
?> 

そして、ここに私のHTMLです:

<form name="sentMessage" id="contactForm" novalidate method="post"> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="form-group"> 
           <input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="text" class="form-control" placeholder="Your Business Name *" id="business" required data-validation-required-message="Please enter your business name."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="col-md-6"> 
           <div class="form-group"> 
            <textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea> 
            <p class="help-block text-danger"></p> 
           </div> 
          </div> 
         <div class="clearfix"></div> 
         <div class="col-lg-12 text-center"> 
          <div id="success"></div> 
          <button type="submit" name="submit" class="btn btn-xl">Send Message</button> 
         </div> 
        </div> 
       </form> 

私は入れ何らかの理由では、 "空($ _ POST [ 'ビジネス'])||"そこには、何も電子メールには入りません。私は私のビジネスのhtmlセクションから「タイプ=」テキスト」を削除すると、メールが経由しかし値として何も行くそれだけでビジネスを言うでしょう:空白....

+0

..このようなあなたの入力にname=""を追加しては – nogad

+0

をGETしませPOSTを使用して願ってフォームを送信しできますか? –

+0

PHPエラーログには何がありますか? – mkaatman

答えて

0

あなたはmethod="post"

<form name="sentMessage" id="contactForm" novalidate> 
を定義していませんでした

ので、

<button type="submit" name ="submit" class="btn btn-xl">Send Message</button>

の名前を与える

<form name="sentMessage" id="contactForm" novalidate method="post"> 

のようになります

だからあなたのコードは、フォームが送信された後、あなたの入力フォームにはname=""name=""は、フォームデータを参照しないためにので、それは、常に空白です

if(isset($_POST['submit']){ 
//set your code here 
} 
+0

投稿したことをした後、メールサービスは返信ボタンをクリックすると、後で試してください。 –

+0

変更に合わせてPHPとHTMLコードを更新しました。 –

+0

提出コードが動作していますが、別の問題はPHPのメールコードにあります。あなたのメールサービスを処理する電子メールプラグインを使用することをお勧めします。 PHPメーラー - https://github.com/PHPMailer/PHPMailer –

0

になります。 、フォームを煮する必要が

<?php 
// Check for empty fields 
if(isset($_POST['submit'])) { 
if(trim($_POST['email'])== '' || trim($_POST['phone'])== '' || trim($_POST['business'])== '' || trim($_POST['message'])== '' || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
{ 
echo "No arguments Provided!"; 
}else{ 
$name = strip_tags(htmlspecialchars($_POST['name'])); 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
$phone = strip_tags(htmlspecialchars($_POST['phone'])); 
$business = strip_tags(htmlspecialchars($_POST['business'])); 
$message = strip_tags(htmlspecialchars($_POST['message'])); 

// Create the email and send the message 
$to = '[email protected]'; // Add your email address inbetween the '' replacing [email protected] - This is where the form will send a message to. 
$email_subject = "Website Contact Form: $name"; 
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nBusiness: $business\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers); 
} 
} 
?> 
<html> 
<head> 
</head>  
<body> 
    <form name="contactForm" novalidate method="POST"> 
    <div class="row"> 
     <div class="col-md-6"> 
      <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Your Name *" name="name" id="name" data-validation-required-message="Please enter your name." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="email" class="form-control" placeholder="Your Email *" name="email" id="email" data-validation-required-message="Please enter your email address." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="tel" class="form-control" placeholder="Your Phone *" name="phone" id="phone" data-validation-required-message="Please enter your phone number." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Your Business Name *" name="business" id="business" data-validation-required-message="Please enter your business name." required> 
       <p class="help-block text-danger"></p> 
      </div> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <textarea class="form-control" placeholder="Your Message *" name="message" id="message" data-validation-required-message="Please enter a message." required></textarea> 
        <p class="help-block text-danger"></p> 
       </div> 
      </div> 
     <div class="clearfix"></div> 
     <div class="col-lg-12 text-center"> 
      <div name="success"></div> 
      <button type="submit" name ="submit" class="btn btn-xl">Send Message</button> 
    </form> 
</body> 
</html> 
+0

ありがとうございますが、質問がありますか? IDの名前を変更した理由あなたがした決定の背後にある理由を知りたいのですが?私はまだPHPを学んでいます..ありがとう! –

+0

また、一番上に2つの名前を付けるのは大丈夫ですか? sentMessageとcontactForm? –

+0

変更後、送信ボタンを押すと何も起こりません。/ –

関連する問題