error.log に PHPのエラーが溜まってた件

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

いつの間にか68MBくらいになってました(爆)。

まず、PHP Notice: Undefined index: が大量に出ています。

$_POST、$_GETで、Notice [PHP]: Undefined indexが出た場合

どうやら、$_POSTや$_GET等のユーザからの値を直接HTMLに出力するのは
セキュリティ的に問題があるという警告で、
htmlspecialchars()等を使用するとよいらしい。

htmlspecialchars って最近目にするようになりました(マジか)。

PHP関数講座:htmlspecialchars -- そふぃのphp入門

htmlspecialchars()は、HTMLにおいて特殊な意味を持つ文字を、そのまま表示できるようHTMLの表示形式に変換します。

なるほど。 善処しましょう。


次、PHP Notice: Undefined offset:。

【PHP】Undefined offsetエラーの根絶: rikimaruのPG/SEしょーもない備忘録

このNoticeの原因は、未定義な添え字の配列データ
(上記の場合、2と4の添え字の配列)をアクセスしようとすると
必ず発生するエラーです。
初期化の徹底はもちろんのこと、ループを回す際には、
対象となる配列は、1,2,3・・・と順番に定義されている
保障はないと考えてループ定義するのが賢明です。
そのために、foreachも良い選択と言えます。
また上記の例で改善させるならば、必ず途中で
「isset()」でチェックしてから、処理させると、Notice
は未然に防ぐことができます。

雑な書き方しちゃダメですね。


それから、PHP Notice: Undefined variable:。
これは、ループを回して「.=」で変数に値を追加していくときに、初回は変数が存在していないので出るようです。

$a = null;

てな感じで、事前に変数を初期化してからやればOKです。

まだ、PHP Deprecated: Assigning the return value of new by reference is deprecated in ~ が出ているんですが、どうもXAMPPの PEAR::Auth の Auth.php 内部の問題のようです。 とりあえず置いておきます。