1. ホーム
  2. php

Warning: session_start() [function.session-start]: セッションキャッシュリミッターを送信できません

2022-02-20 20:03:37

 今日、phpサイトの設定をしていると、よくWarning: session_start() [function.session-start] と表示されます。Cannot send session cache limiter at the top of the page, and it doesn't affect the page opening.

百度に行って調べたら実際に解決したので、今後のためにまず記録しておきました、え?

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\orther object) phptestsession.php:1) in D:\orther objectphptestsession.php on line 2.

1. dreamweverを使っていて、utf-8エンコードを使用している場合、ページ==>ページのプロパティ==>タイトル/エンコード上で右クリックすると、"Unicode署名を含む(BOM)"というチェックボックスがあるので、そのチェックを外せばOKです。これは、utf-8でエンコードされたファイルにはbomが含まれており、php4,5ではbomがサポートされていないためです。

2. php.ini で session.auto_start = 0 を session.auto_start = 1 に変更する。

3. session_start()に直接@session_start()を追加する方法もあり、それで問題ないです。

4. このメッセージは、セッションが有効なときにすでにコンテンツが出力されていることを示し、ob_start()でトドメを刺すことができます。

obの基本的な目的は、正しく使えばWebページを高速化することですが、やみくもにobの機能を追加してもCPUに余計な負荷がかかるだけです。
1). を使用しないようにする。 ブラウザ 出力があった後に setcookie、または header、session_start 関数を使用することによって引き起こされるエラー。

2). HTMLを大量に出力するphpinfoのような、取得できない関数の出力をキャプチャするのですが、その際に 変数 のように、$info=phpinfo();でキャプチャすることができ、そこでobが役に立ちます。

3). gzip圧縮を行うなどして、出力を処理する。 単純と伝統の間の変換 例えば、文字列の置換など。

4). 静的ファイルを生成する。これは実際にフルページの出力をキャプチャしてファイルとして保存するもので、しばしばHTMLの生成やフルページキャッシュで使用されます。

5.  警告エラーをブロックするために、以下のコードをPHPファイルの先頭に直接追加してください。
PHPコード

<?php 

//session_star()がある場合は、session_star()の後に記述する。 

error_reporting(E_ERROR)です。 

ini_set("display_errors","Off") を参照してください。 

//あなたのPHPコード