• ベストアンサー

E_NOTICEでも処理を止められますか?

PHPのE_NOTICEレベルのエラーでも、 エラーを表示して、そこで処理を止めさせたいのですが、 そういう設定や関数などはありますか? よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

set_error_handler()で処理すればいけそうですが

参考URL:
http://www.php.net/manual/ja/function.set-error-handler.php
php_noob
質問者

お礼

これは便利そうですね!

関連するQ&A

  • PHP Noticeエラーの後

    PHPにてNoticeエラーも開発時だしています。 しかしNoticeエラー出てもプログラムは止まりませんので、Notice後の行で header("Location: ".$_SERVER["REQUEST_URI"]); exit; とかしてるとNotice出てるのにブラウザや状況によって、Noticeエラーはブラウザ上に表示されずに、次の画面に遷移してしまう事があります。なのでapacheのエラーログをtail等でずっと表示してれば気づくのですが、そうもいかずブラウザ上に表示されてるものを頼りにしてるので、どこで間違ってるのか気づきにくいのです。 ということでNoticeやWarningでもプログラムを止める事は可能でしょうか?

    • ベストアンサー
    • PHP
  • PHPでのnoticeエラーは放っておいてもいい?

    お世話になります。 PHPで変数を初期化?していなくてそのまま使用した場合などにnoticeエラーが出るかと思いますが、 こういったエラーというのは実務上放っておいてもいいものなのでしょうか? 障害が起きた時にログを見るのが大変とか、ログファイルが大きくなるくらいのものなのでしょうか?

    • ベストアンサー
    • PHP
  • Notice:Undefined variable

    教えてください。 作成したPHPファイルをURLで開くと以前はエラーがありませんでしたが、 現在このPHPを開くとNotice:Undefined variable in **** in /var/www・・・・ on line ??というメッセージが表示されます。他のPHPも同じです。 この****の変数名とその前後の記述は特に変更していません。 最近変更したことといえば、Apacheのhttpd.confのVirtualHostタグのServerNameを変えました。 何かPHPファイル以外に変えなければならない箇所があれば教えていただけますでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのエラー表示

    よろしくお願いします。 使えるねっとの専用サーバーを使っています。 そこで質問ですが、Tera Termでサーバーに接続して etc/php.iniファイルの設定をいじって PHPのエラーが出るようにしたいのですが error_reporting = E_ALL & ~E_NOTICE と display_errors=Onを設定して Apacheの再起動をしたのですが エラーが表示されず、真っ白の画面が表示されるままなのですが どうしたらエラーの表示ができるのでしょうか? 以上よろしくお願いします。

    • 締切済み
    • PHP
  • Xampp で Noticeと出てきます・・・??

    パソコンを2台もっていまして、これまで使っていたPCにインストールされているXamppでは何も 問題がなかったのですが、最近もう一台のPCにインストールしたXamppには手を焼いています。 テキストエリアの文字を、テキストファイルに書き込むだけのものなのですが・・・。 以下のソースで、いつも使っていたPCのXamppでは何もエラー的な表示はでませんでした。ところが、最近いれたXamppでは、 -------------------------------------------------------------------------- Notice: Use of undefined constant sousin - assumed 'sousin' in C:\xampp\htdocs\deri\whats_new.php on line 3 Notice: Undefined index: sousin in C:\xampp\htdocs\deri\whats_new.php on line 3 -------------------------------------------------------------------------- こんなエラーが表示されます。どうにも気持ちが悪くて、解決せずにはいられません。 ソースは以下のとおりです。 エディターはSJISで打っています。PHP5の設定です。 <?php if($_POST["sousin"]=="送信"){ $data=$_POST["whats"]; $fp=fopen("files/whats_new.txt","w+"); fputs($fp,$data); fclose($fp); $end=" ★★★書き込み終了★★★ "; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> </head> <body> <center> <h2>What's New</h2> <br> ※イベント情報等に利用! <br> <form action="whats_new.php" method="post" name="myform"> <textarea name="whats" cols="50" rows="10"> <?=$end?> </textarea> <br> <input type="submit" name="sousin" value="送信"> </form> </center> </body> </html> どなたか、お分かりになる方ご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPにてoci8.dllが正常に関連付けされているかの確認

    php_oci8.dllを用いて、PHPでOracleの関数が使用出来るようにしたいのですが、 現在の設定で上手く動いているかの確認が出来ません。 ------------------ //DBへ接続開始 $conn = @oci_connect("△△△", "●●●", "○○○"); if (!$conn) { $e = oci_error(); echo htmlentities($e['message']); exit; } ------------------ 上記のような簡素な処理(DBに接続しにいき、失敗ならばエラーメッセージを表示) を組んで動かしているのですが、エラーメッセージが表示されません。 しかし、エラーを取得する処理(if文内のoci_error)までは入ってきているため、 接続の書式や設定に問題、またはエラーメッセージが空なだけなのか、 またはOracleの関数自体が機能していないのか、判断がつきません。 if文内に入る(oci_connectで接続できない→Falseを返す)ということは、 oci8.dllとは正常に連携し、oracleの関数は機能している、という認識でよいのでしょうか。

    • 締切済み
    • PHP
  • エラーログに、Noticeを記録しない方法

    PHPのエラーログに、Noticeを記録しない方法はありますでしょうか? ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • eとは?

    <?php e($form->submit('更新'));?> のeとは何の関数ですか?

    • ベストアンサー
    • PHP
  • 「^=」「|=」の意味を教えて

    $error_level ^= E_DEPRECATED; $error_level |= E_NOTICE; の意味を教えてください。 記号(演算子?)の意味を知りたいです。

    • ベストアンサー
    • PHP
  • phpのrequirについてe

    php初心者です。 同じような処理をまとめて、関数にしました。 debug中なので、function()ひとつに ひとつのphpファイル名をつけています。 あとで合体するつもりで。 当然、requireの数が複数になっていますが、requireの行(冒頭)でエラーになってしまいました。 echoで1行ずつ表示して確認しました。原因がわからず順番を変えたりpath指定を変更したりしたのですが、読み込んでくれません。 なので、処理直前で必要な関数を読み込むようにしたりもしたのですが 冒頭で require (dirname(__FILE__)."/include/******.inc"); require (dirname(__FILE__)."/include/******chk.php"); require (dirname(__FILE__)."/../include/******m.inc"); require (dirname(__FILE__)."/m******.php"); require (dirname(__FILE__)."/m******andom.php"); require (dirname(__FILE__)."/m******time_client.php"); require (dirname(__FILE__)."/error_******.php"); require (dirname(__FILE__)."/log******.php"); まではクリアできました。 (path指定が混ざってますがいろいろ試したので。。。) で、ある関数を呼ぶ直前に require (dirname(__FILE__)."/lfunc*****.php"); としたのですが /lfunc*****.php に飛ばないんです。 (echoが出ない) こういうのはどのような原因があるのでしょうか? ちょっと思ったのですが、何か重複してるのでしょうか? 似たような変数名が多くなってますが、requireした中のfunctionの中なら 別の変数として扱われますよね? 一応構文チェックなどはちゃんと no シンタックスエラーを確認しています。 ログにもかかれないし。 すみません、php初心者にアドバイスお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう