フォームからPOSTでデータを受け取る際に必ずと言って「Notice: Undefined index: xxxx in」のエラーが表示されてしまいます。何も操作なしに、単純にそのページにアクセスした際です。
恐らく、何も選択がされていないから?だと思いますのですが、これを回避するために調べてみるとisset を使うという事が色々な記事で書かれていました。
試してみると確かにエラーは消えるのですが、記述内容の意味がいまいち理解できないのです…。
以下の記述を…、
PHP
1$signal = htmlspecialchars($_POST["signal"], ENT_QUOTES, 'UTF-8'); 2 3if($signal === "red" ){ 4 print "赤信号"; 5} elseif (…){ 6… 7… 8}
こちらに変えるとエラーは出なくなりました。
php
1if (isset($_POST["signal"])) { 2 3$signal = htmlspecialchars($_POST["signal"], ENT_QUOTES, 'UTF-8'); 4 5if($signal === "red" ){ 6 print "赤信号"; 7} elseif (…){ 8… 9… 10} 11 12} // ←issetでさらに全体を囲むのですか?? 13
参考通りにただ記述はしたものの、issetでエラーが無くなる仕組みがいまいちわかりません。
$signal判定のIFの更に上でIFで全体を囲んでいるのも??
また、POSTの内容が10個20個と沢山ある場合には、1つ1つにこのような処理を行わないといけないのでしょうか?
とても初歩的な質問で恐縮ですが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー