- ベストアンサー
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>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
すでに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> みたいな感じで・・・ 間違いがありましたらご指摘ください。 ではでは☆
その他の回答 (1)
- kusukusu
- ベストアンサー率38% (141/363)
よくこのカテゴリーで見かけますが、httpヘッダーが理解できていないです。 NO1の方の言われるとおり、ヘッダーを送り位置に問題があります。 ヘッダーはすべての出力の前に送らなければなりません。 session_start()だけでなく、cookie関連や、それこそヘッダーを送るそのものの関数header()なども気をつけてください。
お礼
>ヘッダーはすべての出力の前に送らなければなりません。 ありがとうございました。さっそく試してみます!!
お礼
どうもありがとうございました。 今、入門書を読んでいます。 サンプルどおり作ってるのですが、なかなかです。 さっそく、試してみます。 ありがとうございました。