- ベストアンサー
よくわかるPHPの教科書のエラー?について
- PHPの教科書に記載されているよくわかるPHPの教科書5.5対応のプログラムで、ファイルを開くと「Undefined index: page」というエラーが表示されます。
- 次のページまたは前のページを押すとエラーは消えますが、エラーを非表示にせずにプログラム内で解決する方法を知りたいです。
- 初心者なので、できるだけ分かりやすい解決方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最初のページのURLには 「?page=数字」というクエリストリングがないために、 $_REQUEST['page']と書くと Notice: Undefined indexというエラーが出ます。 $page = $_REQUEST['page']; を $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : ""; と置き換えればエラーは消えます。 三項演算子を使っています。 A ? B : C と書いたとき、AがtrueならB, falseならCという処理となります。 isset関数で配列インデックスが定義済かどうか確認し、 定義済みならその値を、未定義なら空文字""を$pageに代入しています。 詳しくは下記を参照ください。 http://qiita.com/mpyw/items/2f9955db1c02eeef43ea#1-2
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>Notice: Undefined index: page in C:\xampp\htdocs\shop\index.php on line 14 Noticeは「たいしたことないけど一応気にしておいて」というエラーです 「on line 14」とあるとおりプログラムの14行目でエラーが発生しています。 おそらく14行目は >$page = $_REQUEST['page']; だと思います。 これは、「$_REQUEST['page']」が存在しないので、存在しないデータを $pageに代入しようとしているために発生しています。 考え方は2つ (1)Noticeは気にする必要がないので、あえて無視する 具体的には「<?php」の直後の行に、以下を書いてNOTICEを表示させない error_reporting(E_ALL & ~E_NOTICE); (2)エラーになっている個所を修正する $page = isset($_REQUEST['page'])?$_REQUEST['page']:""; のどちらかでよいかと思います。
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
馬鹿でも初心者でも検索くらいできるよね? Notice: Undefined index: これをgoogleに入れただけで一番上にそのままの解決法が出てくるんだけど。
お礼
わかりやすい解説ありがとうございます。