複数のページがあるフォームがあります。私は$_SESSION
配列を使用してユーザー入力を格納します。各ページはセッションがガベージコレクタによって削除されているか確認してください
session_start();
で始まり、時には$_SESSION
の変数が失われます。私は、ユーザーがあまりにも長い期間afkのままで、Garbage Collectorが変数を削除した場合、これが起こると思います。
正しく理解すると、session_status()はセッションが開始されたかどうかを確認するだけで、ガベージコレクタが最近エントリを削除した場合はチェックしません。
ガベージコレクタがアクティブになった場合、$_SESSION
配列の一部またはすべてのエントリを削除しますか?私のセッションが期限切れになった場合、他の言葉では、私は単純に次のようにしてチェックすることができ:
session_start();
if(empty($_SESSION)){
// Garbage Collecter removed entries because user was too long afk
}
一部のエントリは削除されません。どちらかがそこにあるかどうか。 –
@SergiuParaschivしたがって、ガベージコレクタがSESSIONを削除した後に 'session_start'を呼び出すと、' $ _SESSION'配列は空ですか? – Adam
'' garbage collector 'は 'session_start'を実行すると同期して実行され、部分的に削除されたデータは決して見えません。 GCはすべてのセッションデータを削除します。 –