0

これは、質問を開始できなかった平均的なセッションではありません。空白はありません。別のファイルで呼び出していません。

セッションライブラリの構築を開始したため、現在アプリケーションで作業していますが、呼び出すsession_startと次のエラーが発生します。

セッションはすでに開始されていました - 無視しますsession_start()

ソースを見たい方へ:https ://github.com/AdminSpot/ASFramework/blob/master/system/libraries/session.php

これは通常、session.autostart ディレクティブが に設定されていることを意味し1ますが、それは問題です..そうではなく、0 に設定されており、次のようにしてこれを確認しました。

  • システム全体でphp.ini*ファイルを検索し、チェックした
  • 次のコマンドを実行しphp --ini、ini ファイルを検証しました
  • 次のコマンドを実行しましたphp -i | grep session.auto_start。で応答したsession.auto_start => Off => Off
  • PHPInfoページを確認しました。下の画像を参照してください
  • cgi の php.ini ファイルを確認しました
  • nginx には htaccess ファイルがありません
  • grep -lir "session_start" *ライブラリファイルのみを表示
  • FastCGI、Nginx、およびサーバー全体の再起動

セッション開始を独自に呼び出した場所をテストするための基本的なテストスクリプトを作成しました。

アクティブなphp.iniのphpinfo()呼び出し統計は、/etc/php5/cgi/php.ini実行後cat /etc/php5/cgi/php.ini | grep session.auto_startに取得session.auto_start = 0されるため、無効になっています.NGinxでしょうか?

何が起こっているのか、以下のサーバー情報を知っている人はいますか?

  • PHP: Suhosin-Patch を適用した PHP 5.3.5-1ubuntu7.2
  • MySQL: Ver 14.14 Distrib 5.1.54、readline 6.2 を使用する debian-linux-gnu (i686) 用
  • Nginx: バージョン: nginx/0.8.54

PHP情報画面:

ここに画像の説明を入力

4

4 に答える 4

2

私の最初の推測では、その間に設定を変更しているauto-prepend ファイルまたは .htaccess があると思います。

ini_getsession.auto_start と auto_prepend_file の値を取得して確認するために使用できます。phpinfo() も動作するはずです。

編集

セッション ライブラリが 2 回インスタンス化されている可能性がありますか? return$this->session_startedはインスタンス変数であるため、問題が発生する可能性があります。これをクラスレベルの変数に設定するとどうなりますか?

補足:メソッドreturn $this->session_started = true;の最後にもこれがあります。start()それは問題ではありませんが、おかしいようです。

于 2011-07-05T17:29:35.700 に答える
0

とにかく、セッションがすでに開始されているかどうかを確認できます。

if (!isset($_SESSION)) {
     session_start();
}
于 2011-07-05T17:34:08.150 に答える
0

を含む.htaccessはどうphp_value session.auto_start 1ですか?コマンド ラインの PHP は、.htaccess ファイルの設定のオーバーライドを完全に無視します。コマンドライン PHP と Web ベースの PHP は、ほとんどの標準構成で完全に異なる .ini ファイルを持っていることに注意してください。そのため、コマンドライン経由で確認するのは時間の無駄です。

phpinfo()session_start 呼び出しの直前にスクリプトを実行し、有効な設定が何であるかを確認することをお勧めします。

于 2011-07-05T17:28:43.127 に答える
0

http://php.net/manual/en/function.session-start.php#90007

セッション Cookie が渡されているかどうかを確認してください。絞り込むのに役立ちます。

于 2011-07-05T17:46:55.813 に答える