• ベストアンサー

session_start()を使うと警告メッセージが出ます。

PHP4.2.2、apche1.3.27、VineLinux2.6を使っています。 PHPで、session_start()を使うと以下のような警告メッセージが出てしまいます。何かphp.ini内に、セッティングしないといけないことが あるのでしょうか? [ブラウザに表示されたメッセージ] Warning: Cannot send session cookie - headers already sent by (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 10 + 200 = 210 [実行したスクリプト] <html> <head> <title>aaa</title> </head> <body bgcolor="red"> <?php session_cache_limiter('private'); session_start(); $a = 10; $b = 200; $c = $a + $b; print("$a + $b = $c"); ?> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
noname#9414
noname#9414
回答No.1

すでにHTML本体が出力されているため、その後にヘッダ情報を送ってもwarningがでるだけだと思いますが・・・ session_startするタイミングをもっと前に持ってきてはどうでしょうか? <?php session_cache_limiter('private'); session_start(); ?> <html> <head> <title>aaa</title> </head> <body bgcolor="red"> <?php $a = 10; $b = 200; $c = $a + $b; print("$a + $b = $c"); ?> </body> </html> みたいな感じで・・・ 間違いがありましたらご指摘ください。 ではでは☆

ssi77
質問者

お礼

どうもありがとうございました。 今、入門書を読んでいます。 サンプルどおり作ってるのですが、なかなかです。 さっそく、試してみます。 ありがとうございました。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

よくこのカテゴリーで見かけますが、httpヘッダーが理解できていないです。 NO1の方の言われるとおり、ヘッダーを送り位置に問題があります。 ヘッダーはすべての出力の前に送らなければなりません。 session_start()だけでなく、cookie関連や、それこそヘッダーを送るそのものの関数header()なども気をつけてください。

ssi77
質問者

お礼

>ヘッダーはすべての出力の前に送らなければなりません。 ありがとうございました。さっそく試してみます!!

関連するQ&A