質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

5回答

11824閲覧

【PHP】プログラムがエラーコードではなくブラウザエラー(?)になる

sanset

総合スコア186

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/07/18 12:21

編集2017/07/18 13:34

PHPにおいて、エラープログラムを書いてしまうと「Fatal Error」とか「Warning」とか表示されると思います。(表示する設定なら)

しかし、自分が書いたプログラムでは、あるプログラムを実行すると上記のようなエラーが表示されず、ブラウザのエラーが出てしまいます。

Firefox
firefox

Chrome
イメージ説明

Firebugで確認したところ、ステータスは「Aborted」と一瞬表示されました。

これが生じるプログラムは、複雑なのでちょっとここでまとめるのは難しいですが、foreachのループの途中でおきます。
無限ループはしていません。
【追記】該当箇所をコメントアウトすると、無事ページが読み込めます。

PHPにおいて、通常のエラー(画面上に表示されるエラー)と、ブラウザのエラー(今回のエラー)は、どういう違いで後者のエラーが起きてしまうのでしょうか?

後者のエラーは、肝心のエラー部分を確認することが出来ないので、現在原因箇所を探っているところです…。

このエラーの対処法や、ここに注目するといいよという点があれば、教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

自己解決

自己解決しました。
原因は、以下の関数のbが空文字で入ってしまうと、今回のエラーになってしまうみたいです。

PHP

1//最小公倍数 2function gcd($a, $b){ 3 if($b === 0) return $a; 4 return gcd($b, $a % $b); 5}

回答頂いた皆さん、ありがとうございました。
これがFatal Errorではなく、ブラウザのエラーになってしまうのは無限ループが原因でしょうか・・・。

投稿2017/07/18 14:10

sanset

総合スコア186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/18 14:13

無限ループだと、timeout だと思うんですよねぇ。。。 誰か解説してくれんかなぁ。。。
退会済みユーザー

退会済みユーザー

2017/07/18 14:16

ん?ループじゃなくて再帰か。 エラー出ると思うんですけど、出なかったですか?
sanset

2017/07/18 14:20

コメントありがとうございます。 配列から取り出して、この関数だけ実行で試してみましたが、画像のブラウザエラーになりました。
退会済みユーザー

退会済みユーザー

2017/07/18 21:30 編集

興味本位ですが、どういった呼び出し方で再現しますか? echo gcd(?,?); とした時の再現する引数を教えて下さい。
takasima20

2017/07/18 18:27

やってみた。 空文字、null、未設定どれも同じく止まりませんな。 メモリ食いつぶして異常終了してんじゃ? ちなみに、ini_set( 'display_errors', 1 );を入れると Warning: Division by zero が出る(ただし止まらない)ので 同じ現象かは分かりませんが…
退会済みユーザー

退会済みユーザー

2017/07/18 22:59

ありがとうございます。 7.0 以上だと Fatal error ですね^^; 手元に5代ないんで、再現は諦めます。。。
guest

0

がると申します。

  • ERR_EMPTY_RESPONSE
  • PHPプログラム

あたりから考えると、何となく

  • PHPコードのパース、または実行直後でエラー
  • かつ、エラー出力(display_errors)がoffになっている

可能性、を想起しました。
切り分け方としては

  • 該当フォルダにhtmlを置いてブラウザでアクセスしてみる
  • 該当フォルダに「明らかに間違えようのないPHPファイル」を置いてみるか、或いは「php.ini、.htaccess等でdisplay_errorsをOn、error_reportingをE_ALLにしたような状態」で動かしてみる

あたりが初手で出来そうな感じかと思われるのですが、如何でしょうか?

以上、何かの参考にでもなれば幸いです。

投稿2017/07/18 13:25

gallu

総合スコア506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2017/07/18 13:40

ありがとうございます。 「該当フォルダにhtmlを置いてブラウザでアクセスしてみる」ですが、 同ディレクトリのファイルは問題なくアクセスできます。 今回実行しているファイルも、該当部分をコメントアウトしたら実行されている状態です。 「php.ini、.htaccess等でdisplay_errorsをOn、error_reportingをE_ALLにしたような状態」 も試してみましたが、すべて画像と同じエラーになりました。
gallu

2017/07/18 15:01

「php.ini、.htaccess等でdisplay_errorsをOn、error_reportingをE_ALLにしたような状態」で、「該当箇所をコメントアウトしたら動いた」&「該当箇所を活かすとERR_EMPTY_RESPONSE」は、些か、状況としては考えにくいように思われます。 「適切なphp.iniの修正をしていない」もしくは「php.iniを修正した後、httpdをrestartしていない」など、はないでしょうか? 或いは「該当箇所をコメントアウトしたら動く」のであれば。 一端、コメントアウトした状態で ini_set('display_errors', '1'); error_reporting(-1); を入れていただいて、動くのを確認してから「コメントを外して」動かしてみたら、どうなりますでしょうか?
guest

0

ERR_EMPTY_RESPONSE
とか
このページは動作していません データが送信されませんでした

でググると、セキュリティソフトに問題があるケースが結構有りました。
一度、切ってみるか、スマホなど別の環境からアクセスして切り分けてみては?

投稿2017/07/18 13:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2017/07/18 13:33

ありがとうございます。 iphoneのsafariで試したところ「ページが開けません。ネットワーク接続が切れました。」と表示されました・・・。
guest

0

ソースの先頭にこんなん入れてみたらどうでしょう。

PHP

1ini_set( 'display_errors', 1 );

実際にソースみないと分かりませんが、
プログラムが停止してなにも出力されない感じ?

投稿2017/07/18 12:26

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2017/07/18 12:48

ありがとうございます。試してみましたが、画像の通りのエラーになりました・・・。
guest

0

「あるプログラム」がわかりませんが……
httpsで接続してるとか?

投稿2017/07/18 12:23

nnahito

総合スコア2004

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2017/07/18 12:48

ありがとうございます。サイトはhttpsに対応しており、普段もそちらで運用しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問