日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP事はじめ » COOKIEの書き込みができない

COOKIEの書き込みができない

ページ: 1

投稿者 投稿
会員
登録者: 12 2007
返信数: 1
SBS2003+IIS+PHP5.2.5をインストールして
例題を実行したのですがWarningが出てしまいます

例題
cookie.php

<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<form method="POST" action="cookie_rec.php">
E-Mailアドレス:
<input type="text" name="email" size="30" maxlength="50"
value="<?php print($_COOKIE['email']); ?>" />
<input type="submit" value="送信" />
</form>
</body>
</html>

cokie_rec.php
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
クッキー"email"を保存しました。
</body>
</html>

実行しますと

Warning: Cannot modify header information - headers already sent by (output started at cookie_rec.php:3) in cookie_rec.php on line 3

となってしまいます。

同じPHPをXP+apache2+php5.2では動きました。
原因がわかりません。 :|
会員
登録者: 12 2007
返信数: 4
setcookieはどのhtmlタグよりも先に記述する必要があるようです(下記サイト参照)。
空行でもsetcookieの前にあってはいけません。っていうのが仕様のようです。
apacheでうまく行くのは、php.iniのoutput_bufferingがOnになっているからではないでしょうか?
本件の場合、cokie_rec.phpのsetcookieをファイルの先頭(<html>タグの前)に持って行けばうまく行くはずです。
http://jp2.php.net/manual/ja/function.setcookie.php

ページ: 1

日本PHPユーザ会 掲示板 » PHP事はじめ » COOKIEの書き込みができない

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています