エラーメッセージの記事一覧

Cannot modify header information – headers already sent

すでに何らかのHTML出力が行われている場合に、さらにヘッダー情報を出力しようとしたときに、この warning メッセージが表示される。

→この記事の続きを読む

タグ

Unexpected

想定外の変数/定数/関数/オブジェクト等が見つかった場合に表示されるエラーメッセージ。Parse error: syntax error, unexpected T_STRING、Parse error: syntax error, unexpected T_VARIABLE、Parse error: syntax error, unexpected T_FUNCTION 等と表示される。

この場合、括弧の綴じ忘れ等のことも多いが、必要とされるモジュール等の不足、PHP バージョンの差異等が原因のこともある。ショートオープンタグの利用可否に依存しているケースもある。

環境により出たり出なかったりする場合は、PHP のバージョンや php.ini の設定、phpinfo() の情報等を比較すると、解決の糸口が見つかるかもしれない。

タグ

Deprecated

将来動作しなくなる(廃止予定)の関数等を使用している場合に表示される警告メッセージ。PHP5.3 で、E_DEPRECATED というエラーレベルが追加された。

PHP4 互換のスクリプトや、等では多くのコードが引っかかるようである。また、ereg() が deprecated となるようなので、preg_match() を使うのが好ましい。

なお、php.ini で
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
とすればエラー表示はされないが、本質的に解決するわけではない。スクリプトの修正/更新を早急にすべきであろう。

タグ

画面が真っ白

ブラウザ画面が真っ白になることがあります。何らかのエラーが発生していることが多いですが、様々な理由(下記参照)が考えられるため、エラーメッセージを確認すべきです。

  • スクリプトにエラーがある
  • PHP バージョンの違い
  • ライブラリ等の不足
  • セーフモードによる制限

エラーメッセージがブラウザに表示されない場合、エラーログファイルに保存される設定になっていることが多いです。エラーログファイルを閲覧すると、具体的なエラー内容が分かるはずです。

なお、ログファイルの場所は、サーバーにょって異なることがあります。お使いのサーバーの設定マニュアル等を参考にしてください。

タグ

Cannot instantiate abstract class

オブジェクト指向プログラミングでは、抽象クラスを作成することができる。抽象クラスは、クラスの雛形のようなもので、クラスで定義されるべきメソッド等を規定するものです。

抽象クラスは直接インスタンス化することはできません。抽象クラスを継承するクラスを作成し、そのクラスのインスタンスを作成するようにしてください。

もし、抽象クラスのインスタンスを生成しようとすると、下記のようなエラーメッセージが表示されます。


Fatal error: Cannot instantiate abstract class ClassName

タグ

401 Authorization Required

認証が必要なページを閲覧し、認証に失敗したとき、サーバーは401エラーレスポンスを返します。

原因としては、まずユーザー名あるいはパスワードが正しくない、というのが考えられます。入力ミスや大文字小文字の間違い等を確かめてみましょう。

ブラウザやセキュリティソフトの設定によっては認証できないこともあるようですので、お使いのソフトのマニュアル等を参照してください。

それでも解決しない場合は、サーバー側の設定ミスの可能性が考えられます。

タグ

PARSE error

スクリプトをパースする時(構文解析時)に発生したものが PARSE ERROR になります。重大なエラーとみなされ、スクリプト実行が中断されます。主な PARSE には、以下のようなものがあります。

  • syntax error: 構文に誤りがあります。括弧の不一致、末尾のセミコロン忘れ等が原因のことが多いです。XML を扱う場合、XML タグがショートオープンタグとして認識されている可能性があります。(この場合は、php.ini で short_open_tag = Offに設定してください。)

この他、PHP のバージョンが古い等の理由で、うまく解釈できなかった場合も、PARSE error になることがあります。(unexpected T_STRING、undefined XXX のような表記になるようです。) PHP のバージョンを確認するようにしましょう。

タグ

NOTICE error

スクリプト実行には影響しなかったが、潜在的にエラーの可能性がある状況で発行されるのが、NOTICEです。

主なNOTICEエラーは、以下のようなものがあります。

  • Notice: Use of undefined constant 未定義の定数を使用
  • Notice: Undefined variable 未定義の変数を使用
  • Notice: Undefined Index 未定義の配列を使用
  • Notice: Undefined offset 戻り値の個数が合わない

タグ