人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: loy
●カテゴリ:ウェブ制作
✍キーワード:echo PHP test エラー プログラム
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● ke-zi
●18ポイント

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 ←ログを保存したい場所を絶対パスで指定する ファイル名まで指定しないといけない

◎質問者からの返答

display_errors=onでしたね、、、


2 ● picoline
●18ポイント

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

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


3 ● pahoo
●18ポイント

http://nx.eth.jp/php/manual/ref.errorfunc.html#ini.display-error...

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

◎質問者からの返答

display_errorsは最初から有効です。

<IfModule mod_php4.c>

php_flag display_startup_errors on

</IfModule>

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


4 ● ke-zi
●18ポイント

http://nx.eth.jp/php/manual/ref.errorfunc.html

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

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

◎質問者からの返答

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


5 ● picoline
●18ポイント

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」と出ました。

◎質問者からの返答

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

phpinfoで確認したところ、

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

master valueが81

になっていました。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ