質問: ### 前提・実現したいこと phpでお問い合わせホームを作っています。 Notice: Undefined indexのエラーを出ないようにしないです。 ### 発生している問題・エラーメッセージ 1 radioボタンで性別を選んで、 選んだ際は「男性」または「女性」と表示。 どちらも選択しなかった場合は「性別が入力されていません」と表示。 2 お好きなトッピング:でも checkboxを選んだ際は「たまご」または「メンマ」と表示。 選ばれていなかった際は「好きなトッピングを入力してください」と表示。 2つとも表示されていますが、何も入力されなかった場合 ``` Notice: Undefined index: gender in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line 33 Notice: Undefined index: gender in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line 34 ``` ``` Notice: Undefined index: top in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line 86 ``` と出てしまいます。 ### 該当のソースコード ``` ラーメンインデックス ラーメン屋アンケート 入力項目です。 お名前: 性別: 男性 女性 年齢: 1 2 3 郵便番号: - Eメールアドレス: 好きなラーメン: 塩ラーメン 醤油ラーメン 豚骨ラーメン お好きなトッピング: 'たまご','mennma'=>'メンマ'); $cnt =0; foreach ($top as $key => $value) { print ''.$value.''; $cnt++; }; ?> ご感想: ``` ``` ラーメンお問い合わせホーム ラーメン屋アンケート 入力項目です。 お名前: 性別: 年齢: 郵便番号: Eメールアドレス: 好きなラーメン: お好きなトッピング: "; } } ?> ご感想: ``` Notice:を消す方法が調べましたがよくわかりませんでした・・・。 よろしければご教授願いたいです・・・。 宜しくお願いします。
回答: ``` Notice: Undefined index: hoge in /Applications/XAMPP/xamppfiles/htdocs/otoiawase/ramenn.php on line xx ``` このエラーは`$_POST`や`$_GET`で値を受け取るときによく発生するエラーです。このエラーは**定義されていない配列の要素、もしくは変数を使ったときに発生する**エラーです。 たとえば、`ramenn.php`の33行目にある`$name = $_POST['gender'];`という処理ですが、ramenn.phpに直接アクセスした場合、$_POST['gender']が未定義の状態になりますから、`Notice: Undefined index: hoge`というエラーが発生します。 つまりこのエラーは、**使おうとしている配列の要素、もしくは変数が定義されているかどうかを確認することで解決することができ**ます。 以上のことから、`ramenn.php`は以下のようになると思います。 ``` ラーメンお問い合わせホーム ラーメン屋アンケート 入力項目です。 お名前: 性別: 年齢: 郵便番号: Eメールアドレス: 好きなラーメン: お好きなトッピング: "; } } } ?> ご感想: ```