セッション管理に関する質問

このQ&Aのポイント
  • セッション管理に関する質問について解説します。
  • アクセスカウンターをセッションを使って実装している場合に発生する警告について説明します。
  • 警告が表示された場合の解決方法と、問題がブラウザの設定に関連しているかどうかについても触れます。
回答を見る
  • ベストアンサー

セッション管理に関する質問

レンタルサーバで、セッションを使ったアクセスカウンターを書いているのですが(管理人のアクセスで、カウンタが回らない様に) ↓のような警告が出ました 「Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/httpd/maagairu/public_html/index.php:7) in /home/httpd/maagairu/public_html/index.php on line 7」 「Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/httpd/maagairu/public_html/index.php:7) in /home/httpd/maagairu/public_html/index.php on line 7」 これは、「キャッシュが送れない」「クッキーを送れない」、という意味だと思うのですが、これは私のブラウザの設定の問題でしょうか。 この警告の解決方法を教えてください

  • tukai
  • お礼率57% (102/177)
  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • manoh
  • ベストアンサー率60% (9/15)
回答No.1

このワーニングは、ヘッダー情報が出力される前に、何かしらの出力がされているというエラーです。 解決案として、出力を一時的にバッファしておいて、ファイルの最後で一括して出力するという方法があります。 <?php // 出力内容をバッファ ob_start(); /* ここにスクリプトの内容を記述 */ // 出力用バッファをフラッシュする ob_end_flush(); ?> こんなんでどうでしょう?

tukai
質問者

お礼

ありがとう御座いました それで解決しました

関連するQ&A

  • session_start()でwarningが表示されてしまいます。

    phpファイルの冒頭で<?php session_start() ?>と 記述しているのですが、 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ファイル名) in ファイル名 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ファイル名) in ファイル名 とwarningが出てしまいます。 warning中のheaders already sent byにヒントがあるとは感じるのですが、その意味が理解できません。 どなたかお詳しい方宜しくご教示くださいませ。

    • ベストアンサー
    • PHP
  • PHPエラー

    こんにちは。 初めてPHPでプログラミングをしている者です。 PHPのエラー解決方法で悩んでいます。 エラーの内容は Warning: session_start(): Cannot send session cookie - headers already sent by (output started at ~~) in ~~ Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at ~~)in ~~~ です。 お時間のある方回答お待ちしています。

    • ベストアンサー
    • PHP
  • セッションとヘッダーの順序について

    session_name("WebID"); session_start(); を header("Content-Type: text/html; charset=UTF-8"); のあとに呼び出すとエラーになります。 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\php\index.php:56) in C:\xampp\htdocs\php\verify.php on line 3 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\php\index.php:56) in C:\xampp\htdocs\php\verify.php on line 3 やはりセッションを先に呼び出さないといけないのでしょうか? session_unsetというものを使えばこの順序でもうまくいきますか? index.phpからエラーが起きたファイルを表示させているので、 順序は変えにくいのですが、順序を変えなくてもクリアできる 方法があったら教えてください。

    • ベストアンサー
    • PHP
  • セッションの破棄

    セッションについて質問です。 $_SESSION['username']を複数ページで使用した後、破棄しようと思うのですが、エラーが出てしまいます。 セッション自体は破棄できていると思うのですが、これはどういったエラーなのでしょうか? ソースコード <?php session_start(); ?> <!DOCTYPE html> <head> <meta charset="utf-8" /> <title>セッション破棄</title> </head> <body> <?php //セッション変数を全て解除 $_SESSION = array(); //セッションクッキーの削除 if (isset($_COOKIE["PHPSESSID"])) { setcookie("PHPSESSID", '', time() - 1800, '/'); } //セッションを破棄する session_destroy(); if(empty($_SESSION['username'])){ echo "<p>セッション終了</p>"; echo "<a href='session.php'>はじめのページへ</a>"; echo "<a href='index.php'>top</a>"; } ?> </body> </html> エラーメッセージ Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/session3.php:1) in /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/session3.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/session3.php:1) in /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/session3.php on line 16 Warning: session_destroy(): Trying to destroy uninitialized session in /home/etdfftytg/etdfftytg.php.xdomain.jp/public_html/session3.php on line 20

    • ベストアンサー
    • PHP
  • 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>

    • ベストアンサー
    • PHP
  • 会員管理システムを作っているのですが、エラーが出て困っています。

    phpとsmartyで会員管理システムを構築しているのですが、以下のようなエラーが出て困っています。 エラー文 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\Login.class.php:1) in C:\xampp\htdocs\login.php on line 5 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Login.class.php:1) in C:\xampp\htdocs\login.php on line 5 Warning: Smarty error: unable to read resource: "login.tpl" in C:\xampp\htdocs\Smarty.class.php on line 1092 このエラー文は何と言っているのですか? また、解決方法が分かる方、ご回答お願いします。

    • 締切済み
    • PHP
  • session_start()の際のCannot send session cache limiterエラーについて

    現在、SJISだったサイトをUTF-8に変換する作業をしております。 今まで起こらなかったエラーなのですが、検索エンジンで、フォーム(index.php)に入力して送信した結果がsearch.phpに出るプログラムです。search.phpに下記のようなエラーが表示されるようになりました。 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/homepage/public_html/search/search.php:1) in /home/homepage/public_html/search/search.php on line 2 session_start()関数はもちろん<html>ヘッダーより前、プログラムの一番上に下記のように書いております。 <? session_start(); ?> <html> 他のページは問題無いのですが、今の所この検索プログラムの結果画面でのみ起こります。また、SJISで書いていた時はこのようなエラーは起こりませんでした。 恐らくUTF-8に変換した点がポイントだと思いますが、解決策が見つからずこちらに質問させていただきました。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • クッキーの利用

    xfreeのphpサーバーを利用祖いているのですが、クッキーの利用ができません。 (Warning: Cannot modify header information - headers already sent by (output started at hoge/cookie.php bom付ではないか確認をしました。) (sessionも変数を破棄するページでWarning: Cannot modify header information - headers already sent by (output started at hoge/session.php のようなエラーが出ます。破棄のページのみなのでbom付ではないかと思われます。) 下記の画像php.iniはどのように設定すればいいですか?

  • wordpressのエラーメッセージの対処方法

    wordpressのエラーメッセージを解消する方法についてご教示頂ける方 何卒宜しくお願い申し上げます。 【質問事項】 管理画面(ダッシュボード)から私が作成していますサイトにログインしようとID及びPASS を入力し、ログインを試みますと、以下のメッセージが発生し、ログインが不可能な状態 となりました。 解消する方法について、 ご教示賜われる方がいらっしゃいましたら、何卒宜しくお願い申し上げます。 ***以下エラーメッセージ*** Warning: Cannot modify header information - headers already sent by (output started at /home/~/~/public_html/wp-includes/functions.php:2908) in /home/~/~/public_html/wp-includes/pluggable.php on line 709 Warning: Cannot modify header information - headers already sent by (output started at /home/~/~/public_html/wp-includes/functions.php:2908) in /home/~/~/public_html/wp-includes/pluggable.php on line 710 Warning: Cannot modify header information - headers already sent by (output started at /home/~/~/public_html/wp-includes/functions.php:2908) in /home/~/~/public_html/wp-includes/pluggable.php on line 711 Warning: Cannot modify header information - headers already sent by (output started at /home/~/~/public_html/wp-includes/functions.php:2908) in /home/~/~/public_html/wp-includes/pluggable.php on line 712 ************************************************ 【エラーメッセージが出ることになった直接的な原因】 エラーメッセージが出る事になった原因。 functions.php修正によるもの。 * / / function.php(子テーマ) ADD_FILTER( 'widget_tag_cloud_args'、 'my_widget_tag_cloud_args'); 関数my_widget_tag_cloud_args($ argsを){ $ argsを=配列( '順番' => 'RAND'、 '数' => 50、 '最小'=> 8、 '最大' => 10 ); $ argsをを返します。 } (注)リターン$args;を入れ漏れていたことにより、     途中経過的として、サイト事態が白紙となり、     現段階の【メッセージ内容】になっております。 何卒宜しくお願い申し上げます。

  • session_startでエラー

    session_start()をファイルの頭に書いているのですが、Cannot send session cookie - headers already sentとCannot send session cache limiter - headers already sentというエラーが出てしまいます。 session_start()のまえに、ブラウザ出力を行うとエラーが出るという事だったのでファイルの頭に書いたのですがエラーが出てしまいます。 こういう場合、他にどういった原因が考えられるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう