**[[質問箱3/369]] [#x2a8d11e] #author("2018-03-11T16:26:24+09:00;2006-04-10T04:50:08+09:00","","") **[[質問箱/3369]] [#x2a8d11e] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|[改造相談] Headers already sent at…| |~バージョン|1.4.6| |~投稿者|[[ryo]]| |~状態|完了| |~投稿日|&new{2006-03-31 (金) 06:34:58};| ***質問 [#w959defd] 閲覧できないようなページにはリンクしないようにと、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の位置にエラーメッセージが表示されます。 どこを直せばよいのでしょうか?~ 教えていただければと思います。 ***回答 [#i0dc4e29] - 追記です。$s_page を $pageにしてもだめでした。ためしに$s_pageの部分を hoge としたところエラーは表示されませんでした。 -- [[ryo]] &new{2006-03-31 (金) 06:42:37}; - [[ Q. Warning: Cannot modify header information - headers already sent by ( ~ )>Q&A/インストール#jae2cf51]] -- [[jjyun]] &new{2006-03-31 (金) 22:47:16}; -- それで...伺いたいのですが検証に用いたページは、上記のコードの修正前は error freeであることは確認していますか?&br; 上記の修正を一度元に戻した上で、 pukiwiki.php の init_set("display_errors","1"); のコメントを外し、エラーが何もでていないことを確認してみてください.&br; 試しに私の手元の環境で試したところ、報告されている warning は表示されなかったからです. -- [[jjyun]] &new{2006-03-31 (金) 23:12:11}; - 上にも書きましたが、ifの条件を変更するとエラーはありません。変更部分を戻してもエラーは出ませんでした。 headers already sent byでこのサイトを検索してすべてチェックしましたが同様の記事はありませんでした。 今気づいたのですが通常のPHPが吐くエラーメッセージとは違って「Warning:」という部分が無いようです。 -- [[ryo]] &new{2006-03-31 (金) 23:50:09}; - MenuBarに閲覧権限の無いページが含まれていた場合に発生するようですね。lib/auth.phpの209行目付近を下のように改造してみては?(なんで他人の改造のデバッグしてんだろう・・・) -- &new{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]] &new{2006-04-02 (日) 00:04:02}; #comment