質問箱/3369

カテゴリ
サマリ[改造相談] Headers already sent at…
バージョン1.4.6
投稿者ryo?
状態完了
投稿日2006-03-31 (金) 06:34:58

質問

閲覧できないようなページにはリンクしないようにと、make_link.phpの728行目付近を

+ //ここから追加
+ if(check_readable($s_page,false,false)){
		return $al_left . '<a ' . 'href="' . $script . '?' . $r_page . $anchor .
			'"' . $title . '>' . $s_alias . '</a>' . $al_right;
+ }else{
+ 		return $al_left . $s_page . '(認証が必要です)' . $al_right;
+ }
+ //ここまで

と変更したのですが、

Headers already sent at /hogehoge/lib/html.php line 496.

とエラーが出てしまいます。

if(check_readable($s_page,false,false)){

if(false)

にしたり、ログインした状態(すべてのページに閲覧権限あり)にするとエラーは出ません。
また、MenuBarが左に出ないページ
?MenuBar

?cmd=search
でもエラーが出ません。

エラーの出る位置は

<td class="menubar">
<div id="menubar">Headers already sent at /hogehoge/lib/html.php line 496.

といった感じで、ヘッダは出力され、MenuBarの位置にエラーメッセージが表示されます。

どこを直せばよいのでしょうか?
教えていただければと思います。

回答

  • 追記です。$s_page を $pageにしてもだめでした。ためしに$s_pageの部分を hoge としたところエラーは表示されませんでした。 -- ryo? 2006-03-31 (金) 06:42:37
  • Q. Warning: Cannot modify header information - headers already sent by ( ~ ) -- jjyun 2006-03-31 (金) 22:47:16
    • それで...伺いたいのですが検証に用いたページは、上記のコードの修正前は error freeであることは確認していますか?
      上記の修正を一度元に戻した上で、 pukiwiki.php の init_set("display_errors","1"); のコメントを外し、エラーが何もでていないことを確認してみてください.
      試しに私の手元の環境で試したところ、報告されている warning は表示されなかったからです. -- jjyun 2006-03-31 (金) 23:12:11
  • 上にも書きましたが、ifの条件を変更するとエラーはありません。変更部分を戻してもエラーは出ませんでした。 headers already sent byでこのサイトを検索してすべてチェックしましたが同様の記事はありませんでした。 今気づいたのですが通常のPHPが吐くエラーメッセージとは違って「Warning:」という部分が無いようです。 -- ryo? 2006-03-31 (金) 23:50:09
  • MenuBarに閲覧権限の無いページが含まれていた場合に発生するようですね。lib/auth.phpの209行目付近を下のように改造してみては?(なんで他人の改造のデバッグしてんだろう・・・) -- 2006-04-01 (土) 15:03:31
      // Auth failed
    - pkwk_common_headers();
      if ($auth_flag) {
    +  pkwk_common_headers();
       header('WWW-Authenticate: Basic realm="' . $_msg_auth . '"');
       header('HTTP/1.0 401 Unauthorized');
      }
      if ($exit_flag) {
    +  pkwk_common_headers();
       $body = $title = str_replace('$1',
       htmlspecialchars(strip_bracket($page)), $title_cannot);
       $page = str_replace('$1', make_search($page), $title_cannot);
       catbody($title, $page, $body);
       exit;
      }
      return FALSE;
  • ありがとうございます!できました。ユーザ管理関係が標準ではいると良いんですけどね^^ B-wikiはDB必要なんで手を出せないですし。。 -- ryo? 2006-04-02 (日) 00:04:02


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-04-10 (月) 04:50:08
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.218 sec.

OSDN