経緯
- phpでお問い合わせフォームを作成している時にぶつかったエラーです。
- 調べていくうちに、
$_POST
や$_GET
で値を受け取るときによく発生するエラーみたいなので、その原因と解決方法を書きます。
この記事で分かること
-
Notice: Undefined index
エラーの原因と解決方法
Notice: Undefined indexとは
- 未定義の配列の要素を使用した時に出るエラー
Notice: Undefined indexの原因
- 初回アクセスと2回目以降のアクセスの処理を切り分けができていないから
コード例
- お問い合わせフォームを作成する際に、送信ボタンをPOSTした時にその下に書かれている処理が実行される場合を想定します
エラーが表示される場合
index.php
if ($_POST["submit"]) {
//ここに処理が入ります
}
エラーの原因
この場合、index.php
に初回にアクセスした場合、$_POST['submit']
が未定義の状態なので、Notice: Undefined index
というエラーが発生します。
解決方法
配列の要素が定義されているかどうかを確認することで解決することができます。
index.php
if (!empty($_POST["submit"])) {
//ここに処理が入ります
}
解説
このようにempty関数
を使って「$_POST["submit"]
に値が入っている場合は」という条件を与えることで、初回にアクセスしたときにエラーがなくなります。