0

HTML-PHP ハイブリッドの連絡先フォームがあります。

PHP スクリプトは、フォーム データを電子メール アドレスに送信するためのものですが、要素 ID のみを送信し、送信された値を追加しません。

私が使用しているコードは次のとおりです。

<?php 
$ToEmail = 'email@yahoo.com'; 
$EmailSubject = 'Site contact form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Name: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
$MESSAGE_BODY .= "Subject: ".$_POST["subject"]."";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?>

                            <form class="form-horizontal" name="contactform" action="contact.php" method="post">
                                  <div class="control-group">
                                    <label class="control-label" for="name">Name*</label>
                                    <div class="controls">
                                      <input type="text" id="name" placeholder="Name">
                                    </div>
                                  </div>
                                  <div class="control-group">
                                    <label class="control-label" for="email">Email*</label>
                                    <div class="controls">
                                      <input type="text" id="email" placeholder="Email">
                                    </div>
                                  </div>
                                  <div class="control-group">
                                    <label class="control-label" for="subject">Subject*</label>
                                    <div class="controls">
                                      <input type="text" id="subject" placeholder="Subject">
                                    </div>
                                  </div>
                                   <div class="control-group">
                                    <label class="control-label" for="comment">Message*</label>
                                    <div class="controls">

                                      <textarea rows="4" id="comment" placeholder="Type your message here..."></textarea>
                                    </div>
                                  </div>
                                  <div class="control-group">
                                    <div class="controls">
                                      <p> *Required fields</p>
                                      <button type="submit" name="submit" class="btn">Submit</button>
                                    </div>
                                  </div>
                            </form>
4

4 に答える 4

0

フォームからの POST または GET による入力は、 idではなく、HTML で指定されたname属性によって識別されます。だからあげるべき

<input type="text" name="name" placeholder="Name" />

html で$_POST["name"]、処理コードの値にアクセスするために使用します。

また、フォームを表示するためのコードとフォーム入力を処理するための PHP コードの両方に、 contact.phpという同じファイルを使用していると思います。これでいいのですが、そのような場合は以下のようなチェックが必要です

if (isset ($_POST ["submit"]) {
    /* code to process input from user */
}

PHPコードで(そうしないと、フォームを最初に表示するときに正しく機能しません)。

于 2013-08-05T21:01:21.647 に答える