2016-04-09 19 views
0

この質問は愚かなように思えるかもしれませんが、私は長い間この問題を解決しようとしています。私はデータを送信しない形式についての話題を読むが、問題の主な原因は名前属性の欠落であった。私は本当に物事が私の場合には十分に単純だと思われるので、本当に混乱しています。フォームはポスト経由でデータを送信していません

<h3>Send a message</h3> 
<div class="status alert alert-success" style="display: none"></div> 
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php"> 
    <div class="form-group"> 
     <input type="text" name="name" class="form-control" required="required" placeholder="Name"> 
    </div> 
    <div class="form-group"> 
     <input type="email" name="email" class="form-control" required="required" placeholder="Email ID"> 
    </div> 
    <div class="form-group"> 
     <textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Enter your message"></textarea> 
    </div>       
    <button type="submit" name="submit_mail" class="btn btn-primary pull-right">Send</button> 
</form> 

そして、私はPHPを使用して電子メールを送信しようとしていると::

<?php 
include 'php/functions.php'; 

$status = array(
    'type'=>'success', 
    'message'=>'Thank you for contact us. As early as possible we will contact you ' 
    ); 
$name = @trim(stripslashes($_POST['name'])); 
$email = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 

$email_from = $email; 
    $email_to = '[email protected]';//replace with your email 
    $body = 'Name:' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 
    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 
    echo json_encode($status); 
    die; 
?> 

結果は次のとおりです。電子メールは私に送っているが、その内容が空である私は、フォームを持っています。私はに名前を設定する小さなデバッグのものを使用しました。 POSTが設定されていない場合、メール本文にはという名前があります。名前:No Name; 問題はシンプルなようですが、Web開発の初心者であるため解決できません。とにかく、私はどんな提案も感謝します。 よろしくお願いします。 Pavel

+0

私が理解しているように、POSTリクエストは送信されません。私はこのチェックを使用しました 'if($ _ POST){....}' そして常に偽を返します –

+0

質問を更新してください... – user3284463

+0

@ user3284463更新しました。関心をお寄せいただきありがとうございます –

答えて

0

送信ボタンに名前属性がないことを確認してください。

に変更し、それを:

<button type="submit" name="submit" class="btn btn-primary pull-right">Send</button> 

また、ログインを再確認したいことがあります。あなたのメール関数は、このif(isset(...))の範囲内になければなりません。そうしないと、フォームの値がデータベースに保存されていなくても、空のメールがユーザーに送信されます。

これが役に立ちます。

+0

ありがとうございます。私は入力を次のように変更しました: '' 結果は同じです - 私は空のメールを受け取りました –

+0

申し訳ありませんが、私が逃したもう一つの事があります。これは入力ではなくボタンタグでなければなりません。私の編集された答えを見てください。 –

+0

本当に助けていただきありがとうございます。 –