[PHP-users 21769]Re: session_startをコールしては駄目なのでしょうか

Kuma satoru_kumagai @ mjs.co.jp
2004年 5月 21日 (金) 14:54:10 JST


Satoさん,お手数おかけしました.
原因が分かりました.

今までのソース
<?php
header("Content-Type: application/octet-stream-dummy");
header("Content-Disposition: inline; filename=lan_karte.csv");

session_start();
$fname=$_SESSION['fname'];
$fd = fopen($fname, "rb");
fpassthru($fd);
unlink($fname);
?>

これを,session_start();を最上位に持ってきて,以下に修正したら,うまく動作し
ました.
<?php
session_start();
header("Content-Type: application/octet-stream-dummy");
header("Content-Disposition: inline; filename=lan_karte.csv");

$fname=$_SESSION['fname'];
$fd = fopen($fname, "rb");
fpassthru($fd);
unlink($fname);
?>

マニュアルに記載されているheader関数の部分で,
「覚えておいて頂きたいのは、header()関数は、通常のHTMLタグまたはPHPからの出
力にかかわらず、すべての実際の出力の前にコールする必要があることです.」が,
常に頭にあって,今回のようなことになってしまいました.

今まで出来ていたのに,何故・・・は,気になりますが,勉強不足のようです.
改めて,セッションやヘッダについて勉強してみます.
ありがとうございました.



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