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

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

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

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

Q&A

解決済

1回答

476閲覧

既に解決したphpエラーが、他の人の環境下でキャッシュの影響により残り続けることはありますか?

risa_sato

総合スコア16

PHP

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

0グッド

0クリップ

投稿2019/05/18 02:49

前提・実現したいこと

現在、PHPを学んでいるものです。行き詰まってしまったので、わかる方にご相談したいです。

先日、作成した掲示板システムに「グッドボタン」を追加しているときに次のようなメッセージがでました。エラー行ではheader('Location:URL')と、setcookie()を使っています。

Warning: Cannot modify header information - headers already sent by (output started at /address/function.php:33) in /address/good.php on line 13

こちらのエラーと似た状況でした。
https://ja.stackoverflow.com/questions/5453/php-%E3%81%AE-headers-already-sent-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E7%9B%B4%E3%81%97%E3%81%9F%E3%82%89%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B

発生している問題・エラーメッセージ

解決策として、記事を参考に、good.phpの最初にob_start(); 、最後にob_end_clean();を足しました。
結果、自分とユーザーAさん、ユーザーBさんの環境下では headers already sent by のエラーは発生しなくなりました。

ですが、ユーザーCさんの環境下でのみ、このエラーが発生し続けてしまっています。

Cさんの環境でエラーを防ぎたいのですが、自分では再現できずに、どうとりかかっていいものか困っています。

質問

質問ですが、たとえば、ブラウザキャッシュの影響でPHPエラーが残り続けてしまうことはありますか?

また、エラーを自分の環境で再現できない場合、どのように解決にとりかかればいいのでしょうか。
恐れ入りますが、ご教授をよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ちゃんと修正したファイルがそれぞれの環境に反映されているかを再点検すること、
キャッシュを疑うならwebサーバープログラムを再起動すればモジュール版phpもリセットされるし。
webブラウザにキャッシュが残るところを疑うならそれもキャッシュクリアの方法があるし。

ただ、そのob_start()でごまかしてしまっているのがそもそも設計が美しくない気がするので、
echo文とかhtml出力するのをどこまで遅らせて処理を遂行できるか再検討したほうが良いかと。

投稿2019/05/18 03:09

編集2019/05/18 03:09
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

risa_sato

2019/05/18 03:19

ありがとうございます。 ob_start()を使わなくても、エラーなく動作できるようにするのが一番ということですね。
退会済みユーザー

退会済みユーザー

2019/05/18 04:07

echoとかvar_dumpとかでちょっとでも「おもらし」しちゃうと、header関数が利きません。なので、そういうことです。
risa_sato

2019/05/18 08:44

ありがとうございました! var_dumpの位置を改めて見返してみて、もとの原因がわかりました。 とても助かりました。 深く感謝いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問