• ベストアンサー

session_startでエラー

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

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

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

考えられることとして、 ファイルをUTF-8で保存してたりしませんか? もししていたら、適当なエディタで開いて、「UTF-8N」または、「UTF-8(BOMなし)」などで保存してみてはいかがでしょう。 BOMという識別情報がファイルの先頭に存在しているのが原因の可能性があります。

nanashitar
質問者

お礼

回答ありがとうございます。 ご指摘の通り、ファイルをutf-8で保存しています。確認してみたら、デフォルトでBOM付きになっていました。解除したらエラーがでなくなりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連する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_start関数について

    現在、セッション管理を使ったサイトを作成中なのですが セキュリティソフトによるものと思われるのですが ノートンが搭載されているPCだと Warning: session_start[function.session-start]: Cannot send session cache limiter - headers already sent … というエラーが表示されてしまいます。 トレンドマイクロ、マカフィーでは、 上記のエラーは表示されず、正常に動作しているので コーディングには問題ないと思われるのですが やはり、コーディングに問題があるのでしょうか どうぞ、よろしくお願いします。

    • 締切済み
    • 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
  • セッション管理に関する質問

    レンタルサーバで、セッションを使ったアクセスカウンターを書いているのですが(管理人のアクセスで、カウンタが回らない様に) ↓のような警告が出ました 「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」 これは、「キャッシュが送れない」「クッキーを送れない」、という意味だと思うのですが、これは私のブラウザの設定の問題でしょうか。 この警告の解決方法を教えてください

    • ベストアンサー
    • 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
  • utf8保存をするとsession_start()でエラーが出ます。

    PHP:バージョン 5.1.6 セッションを使ってログイン情報を保持したいのですが、 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Eclipse\workspace\ShopSystem\login.php:1) in C:\Eclipse\workspace\ShopSystem\login.php on line 2 と言うエラー情報が出てしまいます。 セッションが既に開始されているらしいのですが、他にセッションスタートを記述した場所がありません。 プログラムの文字コードをutf8にするとこのようになってしまうのですが、shift-JISやutf8nでは正常に動作します。 自力で思いつける解決作は文字コードを全部変えてしまうことなのですが、できればutf8で作りたいと思っています。 お願い致します。 プログラム <?php session_start();  //ログインページ require('config.php'); if($_POST['keep_login']!=''){     session_set_cookie_params(31536000);//31536000(1年間の秒数)=365(日)*24(時間)*3600(秒) }else{     session_set_cookie_params(0); } *略 ?> <html>

    • ベストアンサー
    • PHP
  • このエラーメッセージどういう事?

    PHP4.3.2でWEBアプリケーション作成中ですが下記のようなエラーが出ますどういう意味で、また、対処法などわかれば教えてください。 1・Fatal error: Call to undefined function: mb_convert_kana() in  2・Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at エラーは一緒に出るわけではなく、それぞれ別ファイルです。 よろしくお願いします。

    • ベストアンサー
    • 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
このQ&Aのポイント
  • 運動部が暴力的になる原因は、統制を取るためと士気を高めるためのメリットがあったからと考えられます。
  • プロのスポーツ選手も試合前に極限状態になり暴力的になることがあり、大相撲や学生の運動部でも同様のことが起こることがあります。
  • また、当時の運動部の指導者は自身が学生時代に同様の環境にいたことから、暴力的な行為を受け入れる生徒に対しては寛容であり、暴力による統制が成り立っていた可能性も考えられます。
回答を見る

専門家に質問してみよう