1

現在、私は PHP カスタム セッション ハンドラーを作成していますが、本質的な問題で立ち往生しています。

  1. セッション ハンドラーを初期化する前、その後、またはセッション ハンドラー クラス自体でセッションを開始する必要がありますか?
  2. どこで session_set_save_handler() を呼び出す必要がありますか (現時点では、Session ハンドラー コンストラクターで呼び出しています)。

ハンドラーを初期化する前にセッションを開始すると、データベースがいっぱいにならず、Apache エラー ログ/Web ページにエラーが表示されません。さらに、通常の場合と同様に、スタート ページにリダイレクトされます。

次に、初期化後にセッションを開始しようとしましたが、いくつかのエラーが表示され、開始ページにリダイレクトされません。

最後のケースでは、 session_set_save_handler() の前後にコンストラクターで開始しようとしましたが、前に説明したのと同じ動作です。

誰でもその問題の正しい方法を教えてもらえますか?

4

1 に答える 1

2

セッション ハンドラーを初期化する前、その後、またはセッション ハンドラー クラス自体でセッションを開始する必要がありますか?

クラスのインスタンスを作成したら、session_start()

<?php
class MySessionHandler implements SessionHandlerInterface
{
    // implement interfaces here
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// proceed to set and retrieve values by key from $_SESSION

どこで session_set_save_handler() を呼び出す必要がありますか (現時点では、Session ハンドラー コンストラクターで呼び出しています)。

上記の例を参照してください。

PHPマニュアルの詳細情報はこちら

于 2013-08-13T12:46:30.707 に答える