[PHP-users 18294]Re: header()関数

Y.Watanabe yuw @ msj.biglobe.ne.jp
2003年 10月 7日 (火) 15:24:34 JST


わたなべです。

tomohiro kasuya wrote on 2003/10/07 15:01
with Subject: [PHP-users 18293] header()関数

>環境
>OS:Solaris8
>WEBServer:SunONE Web Server6.0
>PHP4.3.0
>
>php.ini の session.cache_limiterをno-cacheに設定しています。
>特定のページだけ、no-cacheの設定を解除したいため
>該当ページでPHPのheader()関数を使用して以下のように設定しました。
><?php
>header("Pragma:");
>header("Cache-Control:"); 
>?>
>マニュアルによるとheader()関数はデフォルトで、上書きの動作をする
>と書かれておりますが、実際パケットを見ると追加されていました。
>同じ設定でWEBServerをApacheにした所、正常に上書きされました。
>PHPのソースを確認した所、apacheのapi(mod_php4.c)と、
>SunONEのapi(nsapi.c)内のソースが異なっており、nsapi.c の場合は、
>replaceフラグのチェックを行っていない為、常にheaderに追加する
>動作になってしまっているように思われます。

上書きでなく追加されてるっていうのは、つまり結果として
Pragma: とか Cache-Control: の行が重複して出力されてるって
ことですよね? 

バグじゃないでしょうか?

http://bugs.php.net/ をざっとサーチしましたが
該当しそうな報告がありませんでした。
新しいバグとして登録したほうがよい、に一票。
# 当面の回避策は、自分でパッチを書くしか・・・??
# あるいはheader()じゃなくini_set()を使って・・・も無理かな。



PHP-users メーリングリストの案内