0

私は自分のコードの何が問題なのかを突き止めてきました。私は仕事を続けて$_POSTいません。これは私のHTMLコードです:

<form id="EmailForm" action="mailForm.php" method="post" 
  onsubmit="validateForm()" enctype="text/plain">
  <div>
    Name: <input type="text" value="" name="name" size="30" />
    Email: <input type="text" value="" name="email" size="30" />
    Subject: <input type="text" value="" name="subject" size="60" />
    Message: <br />
    <textarea name="message" rows="5" cols="60"></textarea>
    <input type="submit" value="Send" />
  </div>
</form>

これは私のmailForm.phpコードです:

<?php
$name = $_POST['name']; 
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];
$mailsent = mail("admin@example.com", "$subject", "$message\n\n$name\n$email", "");
if ($mailsent) {
echo ("Your email has been sent. Thank you for using our mail form. <br />");
echo ("Name: ".$name."<br />");
echo ("Email: ".$email."<br />");
echo ("Subject: ".$subject."<br />");
echo ("Message: ".$message);
}
?>

これまでのところ、メールを送信できますが、すべてのメールは空です。名前または電子メールは表示されませんでしたが、Web ホスティング サービスからデフォルトの名前に変更されました。名前もメールも件名もメッセージもありません。でmailForm.php、私は次のものだけを手に入れました:

Your email has been sent. Thank you for using our mail form.   
Name:
Email:
Subject: 
Message:

試してみましecho $_POST["name"]; echo $_POST["email"]たが、空のページが表示されました。

4

2 に答える 2

1

enctype="text/plain"この場合、タグで使用しないでください<form>...

php$_POSTそのコードを使用すると、フォーム要素が表示されません。

php には、$HTTP_RAW_POST_DATA投稿されたデータを単純な文字列として格納するという変数がありますenctype="text/plain"

したがって<form>、HTML コードのタグは次のようになります。

<form id="EmailForm" action="mailForm.php" method="post" onsubmit="validateForm()">

タグの有効なenctype値は次のとおりです。<form>

application/x-www-form-urlencoded:デフォルト。すべての文字は送信前にエンコードされます (スペースは「+」記号に変換され、特殊文字は ASCII HEX 値に変換されます)。

multipart/form-data:スペースは「+」記号に変換されますが、特殊文字はエンコードされません 文字はエンコードされません。この値は、ファイル アップロード コントロールを持つフォームを使用している場合に必要です。

text/plain:スペースは「+」記号に変換されますが、特殊文字はエンコードされません

text/plain他の 2 つのメソッドが $_POST の配列として利用できることを除いて ...

于 2012-09-19T09:40:41.737 に答える
1

を削除するだけenctype="text/plain"です:

<form id="EmailForm" action="mailForm.php" method="post" onsubmit="validateForm()">

<form>タグ内の enctype の PHP で有効な値は次のとおりです。

application/x-www-form-urlencoded
multipart/form-data
于 2012-09-19T09:30:41.620 に答える