php4のエラー表示について質問です。

<?php
error_reporting(E_ALL);
$test = 1
echo $test;
?>
として、;を忘れたときなどに白紙ページが表示され、
何行目でどんなエラーになったのかがまったくわかりません。
プログラムの先頭でerror_reporting(E_ALL);をしても白紙のままです。
php.iniなどの設定を変更すればエラー内容が表示されるのでしょうか?
回避方法を教えて下さい。お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:ke-zi No.1

回答回数95ベストアンサー獲得回数0

ポイント18pt

http://php.s3.to/man/ref.errorfunc.html

エラー処理およびログ記録関数

php.iniのdisplay_errorsがoffになっていませんでしょうか。

エラー関係として、

display_errors = off //offにする事でHTML上にエラーを表示されないようになる

log_errors = off ←onにする事でファイルにログを出力するように設定される

error_log = /var/log/php_error_logs ←ログを保存したい場所を絶対パスで指定する ファイル名まで指定しないといけない

id:loy

display_errors=onでしたね、、、

2004/07/21 18:28:25
id:picoline No.2

回答回数17ベストアンサー獲得回数0

ポイント18pt

php.ini中の「display_errors」が「Off」になっていると

スクリプト中で「error_reporting(E_ALL);」をしても

エラーが一切表示されなくなるようです。

なので「display_errors=On」にすることでエラーを表示

させることが出来ます。

ちなみに上のスクリプトでは

Parse error: parse error, unexpected T_ECHO in /www/test.php on line 4

という感じでエラーが出ました。

id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント18pt

display_errorsなどを使って、エラー出力先を指定してやる必要があります。

id:loy

display_errorsは最初から有効です。

<IfModule mod_php4.c>

php_flag display_startup_errors on

</IfModule>

として、.htaccessでdisplay_startup_errorsもonにしたのですが、依然白紙のままです。どうしたらよいのでしょうか?

2004/07/21 19:13:41
id:ke-zi No.4

回答回数95ベストアンサー獲得回数0

ポイント18pt

configure時に何も指定しなくてもインストールされるはずですので、試しにphpinfo()で内容を確認してみてはどうでしょうか。

phpinfo()上で、display_errorsがOnになっていなかったりすると、php.iniのパスを間違えている可能性もあります。パスはphpinfo()上で出てきますので確認して下さい。

id:loy

display_errorsはonで、関数が存在しないなどのエラーはきちんと表示されています。おそらく、スクリプトのコンパイルエラーに対応してないのでしょうか。

2004/07/21 19:30:40
id:picoline No.5

回答回数17ベストアンサー獲得回数0

ポイント18pt

loyさんと同じ「関数が存在しないなど」のエラーは表示されるが「;を書き忘れた場合」のエラーは表示されないという状況を再現しようとphp.iniをいじくってみましたところ、

error_reporting = E_ALL & ~E_PARSE

display_errors = On

というphp.iniを用いた時に同じ状況が再現出来ました。

というわけでphpinfo()でerror_reportingがE_ALL(PHP 4.2.3のとき2043)になっているか確認してみて下さい。

ちなみに上記設定のとき、<?php a=1 ?>では白紙(エラー表示なし)、

<?php undefinedfunction(); ?>では「Fatal error: Call to undefined function: undefinedfunction() in /www/test.php on line 2」と出ました。

id:loy

いろいろありがとうございます。

phpinfoで確認したところ、

local valueがE_ALL、(.htaccessで設定してます)

master valueが81

になっていました。

これではダメってことですよね。どうしたらよいでしょうか。

2004/07/21 20:14:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません