[PHP-users 18952]headerを変えたい? setcookie( )の使い方について

KOYAMA HIDEKI hill47goodtree @ ybb.ne.jp
2003年 11月 16日 (日) 00:11:49 JST


PHPなどすべてが初心の者です。質問の表現の仕方にも不適切
な部分があるかもしれませんがお許しいただき、ご教示下さい
。環境はVine Linux 2.6  Apache 2.0.47  PostgreSQL 7.3.3 
PHP 4.3.2  
です。
番号と名前からなる名簿をPostgreSQLに作ってあります。さら
にHTMLのFormで番号だけを打ち込んで、名簿に載っていた場合
だけその人の番号と名前を返す、スクリプトをPHPで作りまし
た。(これは正常に動作しています。)そしてやりたいことは、
この該当した人の番号と名前を他のWebページでも使いたいの
です。この場合session関数かcookie関数を使うことになると
考えました。setcookie( )を使った場合、以下のようなエラー
が出ます。

Warning: Cannot modify header information - headers
already sent by (output started at
/usr/local/apache2/htdocs/chkexist.php:10) in
/usr/local/apache2/htdocs/chkexist.php on line 81

PHPスクリプトは

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=EUC-JP">
<title>登録済みかどうかチェックする</title>
</head>
<body>
<table>
<tr><td>
<form method="POST" action="<?=$_SERVER["PHP_SELF"]?>">
番号
<input type="integer" name="pn">
<input type="submit" value="問い合わせ">
</form>
</td>
<td>
<?php

--中略--
該当した人の番号「$s_pn」と名前「$s_nam」を打ち出した後

setcookie("sel_pn", "$s_pn", time() + 3600);
setcookie("sel_nam", "$s_nam", time() + 3600);
    }
    else {
    echo "<font color='red'>番号 $pn は登録されていませ
ん。</font>";
    }
}
?>
</td></tr>
</body>
</html>

最初のsetcookieの行がline 81になります(当然line 82にも同
じエラーが出ます)。headerの問題と思いまして自分なりにい
ろいろ調べましたが(根本的部分の理解不足と承知しています
が)、自力では解決できず質問させていただきました。よろし
くお願いいたします。



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