私はこの問題について何十件もの投稿を見てきましたが、基本的に宣言されていない変数や値が与えられていません。しかし、私はそれが同じで、宣言されたことを100%確信しています。テキストエリアを使用したPHPの未定義インデックス
私はHTMLで基本的な連絡先フォームを持っています。誰かが送信ボタンを押したときに私と電子メールを送信します。問題の内容を確認するためにコードをデバッグしています。唯一の問題は、私のテキストエリアに属するUndefined Index
があることです。
私は、テキストエリアの名前がPHPの私の$_POST
の名前と同じでなければならないことを知っています。コードの2つのセクションを見て、なぜ私のテキストエリアから情報を取得しないのか分かりますか教えてください。名前はmessage-area
です。
HTML
<form action="mail.php" method="post" name=contact-me-form >
<label name="firstname secondname">Name: * </label><br>
<input class="half-box" type="text" name="firstname" required >
<input class="half-box" type="text" name="secondname" required ><br>
<p class="first-name">First Name</p>
<p class="second-name">Last Name</p><br>
<label name="email">Email Address: * </label><br>
<input class="full-box" type="email" name="email" spellcheck="false" required><br>
<label name="subject">Subject: </label><br>
<input class="full-box" type="text" name="subject"><br>
<label name="message">Message: * </label><br>
<textarea name="message-area" form="contact-me-form" type="text" placeholder="Please enter your message"></textarea>
<button name="submit" type="submit" value="Submit">Submit</button>
</form>
PHP
<?PHP
$to = "";
$from = "";
$first_name = '';
$last_name = '';
$subject = '';
$message = null;
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
if(isset($_POST['submit'])){
$to = '[email protected]';
$from = $_POST['email'];
$first_name = $_POST['firstname'];
$last_name = $_POST['secondname'];
$subject = $_POST['subject'];
$message = $_POST["message-area"];
if($message == null){echo "no message detected";}
$headers = "From: " . $from;
$headers = "From:" . $to;
mail($to,$subject,$message,$headers);
}
?>
あなたは、私はそれが次のように表示する立ち上がるデータを提出する際に名前がまだ同じである見ることができるように。
INT(8)文字列(29) "不定度:メッセージ領域" 列(58) "/エルメス/ bosnaweb25a/b2294 /ビット以上の情報が続くと私のエラーが表示されます:[" メッセージ」 ] => NULL}が検出されないメッセージ。
私は正直もっと経験を持つ誰もが私のミスを強調表示することができ、これはピックアップされていない理由はわかりません?
EDIT 1
これはとは関係ありません次のようにコードを編集したので、ダッシュ/ハイフンを使用します。
これを元のテキストに変更してもまだ動作しない場合でも、テキストエリアからのデータがないかのように動作することに注意することも重要です。
HTML
<form action="mail.php" method="post" id=contact-me-form >
<label name="firstname secondname">Name: * </label><br>
<input class="half-box" type="text" name="firstname" required >
<input class="half-box" type="text" name="secondname" required ><br>
<p class="first-name">First Name</p>
<p class="second-name">Last Name</p><br>
<label name="email">Email Address: * </label><br>
<input class="full-box" type="email" name="email" spellcheck="false" required><br>
<label name="subject">Subject: </label><br>
<input class="full-box" type="text" name="subject"><br>
<label name="message">Message: * </label><br>
<textarea name="messagearea" type="text" placeholder="Please enter your message"></textarea>
<button name="submit" type="submit" value="Submit">Submit</button>
</form>
PHP
<?PHP
$to = "";
$from = "";
$first_name = '';
$last_name = '';
$subject = '';
$message = null;
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");
if(isset($_POST['submit'])){
$to = '[email protected]';
$from = $_POST['email'];
$first_name = $_POST['firstname'];
$last_name = $_POST['secondname'];
$subject = $_POST['subject'];
$message = $_POST["messagearea"];
if($message == null){echo "no message detected";}
$headers = "From: " . $from;
$headers = "From:" . $to;
mail($to,$subject,$message,$headers);
}
?>
EDIT 2
は、ハードコーディングされた値は、それが変数名である必要がありますので、作品とそれをテストされています。テキストエリアでしか起こらないのは奇妙なことです。
ヒント:一部のアイテム*が送信されていて、残りのアイテムが送信されていない場合は、それらの違いが何であるかをよく見て、その差を取り除いてください。 – deceze
'message-area'の名前をハイフンなしの名前に変更してみてください。 – Marki555
ありがとう、見てみました。私はHTMLとPHPからハイフン/ダッシュを削除しましたが、今でも同じエラーが「未定義インデックス:messagearea」と表示されています。 – CardDeath