• ベストアンサー

ブラウザからPHPをアクセスしたときに

ブラウザにPHPエラーを表示させるには PHPをおいているサーバのPHP設定ファイルで php.ini display_errors=on とすればできますが php.ini display_errors=off としていても php.ini display_errors=on の時と同じようにブラウザにエラーを表示させる方法は有るのでしょうか?

  • guuman
  • お礼率86% (1043/1206)
  • PHP
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
回答No.1

PHPの putenv 関数を使用してスクリプトから環境変数を設定することが可能です。 ですので以下のコードをプログラムの冒頭に記述しておけばそのスクリプトでのエラーが表示されるようになります。 putenv("display_errors=on"); ただし、設定によっては変更できない場合も存在します。 詳しくは参考URLを参照してください。

参考URL:
http://jp.php.net/manual/ja/function.putenv.php
guuman
質問者

お礼

ありがとうございます そのスクリプトにおいてのみ有効にする方法は無いのでしょうか? error_reporting(E_ALL); を冒頭につけてもだめでした 多分このための関数ではないからでしょう 環境変数を変えると他のユーザに影響を与えてしまうので避けたいのですが・・・・

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

ini_set("display_errors", 1); で設定できますよ。

guuman
質問者

お礼

ありがとうございます やはりだめでした FC4独自の問題かもしれません ちなみに php.iniで safe_mode=off になっているので多分セーフモードではないと思います

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

セーフモードでは、変更出来る環境変数に制限があるようですよ。 http://www.php.net/manual/ja/features.safe-mode.functions.php

guuman
質問者

お礼

ありがとうございます たぶんセーブモードではないと思います

回答No.2

#1です。 putenv 関数で環境変数が変更されるのはそのスクリプトのみですのでご安心ください。 参考URL先にも >リクエスト終了時、環境変数は元の状態に戻されます。 と記述されています。

guuman
質問者

お礼

ありがとうございます <?php putenv("display_errors=on"); echo'<pre>'; echo date('Y/m/d-H:i:s'),"\n"; *//故意のエラー echo'</pre>'; ?> でやってみたのですができない場合のようです FedoraCore4のデフォルトフルインストールのサーバです

関連するQ&A

  • PHP display_errorsが設定出来ない

    PHP 5.3.3 php.iniでは display_errors = Off ですが、php内で ini_set( 'display_errors', "On" );  するも 標準出力にエラーが表示されません。 設定の上書き禁止設定とかありましたっけ・・・

    • ベストアンサー
    • PHP
  • PHPで画面でなくファイルにエラー出力したいです。

    本番運用しているサーバーで、 ini_set("display_errors","Off"); としているのですが、エラーになった場合、 ini_set("display_errors","On"); の時と同じエラーをファイルに出力する事は可能でしょうか?

    • ベストアンサー
    • PHP
  • PHPのエラーがでない

    お世話になります よろしくお願いします 使えるネット様のサーバーを使用しています。 PHPでデバッグ用にエラーの表示をしたいのですが どうすればいいか分からず困っています [php.ini] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; error_reporting = E_ALL & ~E_NOTICE display_errors = On display_startup_errors = Off log_errors = Off log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On ソースに error_reporting(E_ALL|E_STRICT); を入れてもだめでした 怪しいところといえば phpinfoで Configurationの箇所がLocal ValueとMaster Valueに分かれているのですが Master Valueのほうがdisplay_errors On Local Valueのほうがdisplay_errors Off になっています。 原因はこれじゃないかなと思っているのですが どうすればいいか分からず困っています 以上よろしくお願いします

  • ファイル内でのini_set

    ファイル内でのini_setの挙動について意味がわかりません。 エラー表示を制御させたくphpファイル内にini_set('display_errors', 0);としました。 echo ini_get('display_errors');//1と表示 ini_set('display_errors', 0); //$str = "aaa" echo ini_get('display_errors');//0と表示 exit; この状態で$strのコメントを外すとなぜかエラーがきっちり表示されてしまいます。 調べたところファイル内で設定できないものもあるがこの項目についてはファイル内で 制御できるとありました。 .htaccessではinclude_pathの設定をしているだけでdisplay_errorsの設定はしておらず全く 原因がわかりません・・・ちなみに.htaccessでphp_value display_errors Offを入れると エラーは表示されません。 環境はphp5でxamppを利用しております。 ローカルか運用サーバーかでそれぞれの制御を変えたくできればphp内で行いたいのですが どうすればいいものでしょうか?

    • 締切済み
    • PHP
  • PHPのエラー表示

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

    • 締切済み
    • PHP
  • PHPでFetalなエラーが発生した場合

    PHPでFetalなエラーが発生した場合 に、ApacheのErrorDocument 500で指定したメッセージを表示させたいのですが、上手くいきません。 ■Apacheの設定 ErrorDocument 500 "The server made a boo boo." ■PHPの設定 error_reporting(6135); // 0にしてもダメでした ini_set('display_errors', '1'); // 0にしてもダメでした ■PHPのコード <?php throw new Excpetopn('err!'); ?> ブラウザからアクセスすると、httpレスポンスコードは500が返ってきています。 ini_set('display_errors', '1'); にすると、 Fatal error: Uncaught exception 'Exception' with message が表示されます。 逆に ini_set('display_errors', '0'); にすると、 何も表示されません。 どうしたら、ErrorDocument 500で設定した"The server made a boo boo."が表示されるようになりますでしょ うか。。 そもそも表示できないのでは?と思いはじめてますが。。 知っている方いましたら、ぜひともご教授下さい。 よろしくおねがいいたします。 Apache 2.2.3 PHP5.3.0

    • ベストアンサー
    • PHP
  • PHP5.3:iniの設定内容が反映されない?

    お世話になります。 ■環境 CentOS5.5(32bit)に、yumでPHP5.3.5を入れて使用しています。(remiリポジトリ使用) php.iniは、'display_errors'をOffにする以外、デフォルトの状態です。 ■状況 PHPを使ってシェルスクリプトを書いています。 ---------------------------- #!/usr/bin/php <?php  ~※~ ?> ---------------------------- 上記の※の箇所で実際に処理を書いていて、 コンソールから実行したところ、これら自体は正常に実行されています。 ただ、非推奨の関数や記述方法を使用した際に表示される 'Deplicate'エラーがコンソール上に出力されてしまいます。 (エラー自体がPHP5.3から追加されていることと、原因箇所自体は理解しています。) ■質問 ここで気になっているのは、php.iniで'display_errors'をOffにしているのに、 なぜ表示されてしまうのか、ということです。 同様の「エラーの出力される処理」をブラウザから起動した場合は エラーが抑制されていたため、php.ini自体は問題ないように思われます。 一応、シェルスクリプト上でini_set()で'display_errors'をOffにすると消えることを確認しましたので 回避自体はできるのですが、今後ほかの設定値をphp.iniで変更した場合、 影響がでそうなので、困っています。 コマンドラインから起動する場合、php.iniになにか編集が必要なのでしょうか? 以上、長文となりましたが、どなたかご教示いただきたく存じます。

    • 締切済み
    • PHP
  • PHPのエラー表示について

    PHPを勉強し始めたばかりの初心者です。 開発環境はDreamweaverとwebmatrixです。 出力結果をブラウザで確認しているのですが、 エラーの詳細が表示されず HTTPステータスコード(404 Not Foundなど)しか返ってきません。 php.iniは、ネットで調べて以下のように設定しました。 display_errors = On error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT でも、表示が変わりません。 phpinfo();の結果表示内のLoaded Configuration Fileの項目は C:\xampp\php\php.iniですので、それを編集しています。 更新されてないのかな?と思ってPCを再起動しましたが変わりませんでした。 ご存知の方がいらっしゃいましたら、ご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • どうしても、ウェブ上でPHPエラーメッセージがでない

    error_reporting = E_ALL display_errors = On にしてるのに、わざとphpの構文エラーをだしても、ナニもブラウザにエラーが表示されません。 なお、phpとincファイルを「error」で全検索しても、特にナニも検索にひっかかりません。 なぜでしょうか? おわかりのかたいらっしゃいましたら、教えていただければ幸いです。

    • ベストアンサー
    • PHP
  • エラーが画面に表示されません。

    エラーが画面に表示されません。 エラーが画面に全く表示されず、エラーが発生するとブランクのページが表示されます。 php.iniのdisplay_errorsはOnに設定しており、phpinfo()で確認してもdisplay_errorsの欄はonになっています。 何か他に原因は考えられますでしょうか。 よろしくお願いします。 環境:CentOS 5.4 + Apache 2.2.3 + PHP 5.1.6

    • ベストアンサー
    • PHP

専門家に質問してみよう