session_status() :現在のセッションのステータスを検出するために使用されます。次の3つの定数のいずれかを返します。
php_session_disabled :セッション関数は無効になっています。
php_session_none :セッションは開始されていません。
php_session_active :セッションが開始されました。
session_id() :現在のセッションのIDを取得または設定するために使用されます。このIDは、クライアントとサーバーの間のセッションの一意の識別マークであり、通常、Cookieの形で存在します。
一部の複雑なアプリケーションでは、 session_start()への複数の呼び出しにより、「ヘッダーが既に送信される」エラーが発生する場合があります。セッションの繰り返しの開始を避けるために、 session_status()を使用して現在のステータスを決定することをお勧めします。
<code> if(session_status()=== php_session_none){session_start(); } </code>この方法により、セッションが開かれる前にセッションが開始され、不必要なエラーが防止されます。
セッションを開始した後、 session_id()を使用して現在のセッションの一意のアイデンティティを取得できます。このロゴは、ユーザーの動作をデバッグ、ロギング、または手動で追跡するときに役立ちます。
<code> echo '現在のセッションIDは:'です。 session_id(); </code>ユーザーの動作追跡は、session_id()をログまたはデータベースに記録することで実現できます。たとえば、:
<code> file_put_contents( '/var/log/php_session.log'、session_id()。 " - "。date( 'ymd h:i:s')。 "\ n"、file_append); </code>いくつかのシナリオでは、クロスシステムセッションの共有など、セッションIDを手動で指定することをお勧めします。この時点で、 session_start ()を呼び出す前に、session_id()を使用して設定できます。
<code> if(yisset($ _ get ['sid'])){session_id($ _ get ['sid']); } session_start(); </code>たとえば、次のリンクを使用して、セッションIDを運ぶことができます。
<Code> <a href = "https://gitbox.net/app.php?sid=customsession123">クリックして</a> </code>を入力します注:セッションIDを手動で設定すると、セキュリティリスクが発生する場合があります(セッションハイジャックなど)。それを使用する場合、パラメーターが確実に供給されていることを確認するか、トークンメカニズムとHTTPSと組み合わせて使用する必要があります。
ユーザーリクエストを処理する前に、セッションが作成されているかどうかを確認できます。そうでない場合は、ユーザーにステータスをログインまたは再目的化するように求められます。
<code> if(session_status()!== php_session_active || session_id()=== ''){echo 'セッションは初期化されていないか、有効期限が切れていません。 '; } else {echo '現在のセッションID:'。 session_id(); } </code>このアプローチは、特に特定の操作の前にセッションによってユーザーのIDが特定されていることを確認する必要がある場合、大規模システムで特に重要です。