PHPのセッションは、Webサイトの複数のページにわたって情報を保存する方法を提供します。クライアントのブラウザにデータを保存するCookieとは異なり、セッションデータはサーバーに保存されます。これがPHPでのセッションの仕組みです:
session_start()
関数を使用して行われます。$_SESSION
SuperGlobal Arrayを使用して保存できます。たとえば、ユーザーの名前を保存するには、 $_SESSION['username'] = 'JohnDoe';
。session_start()
が呼び出された任意のページからアクセスできます。たとえば、保存されているユーザー名を取得するには、 echo $_SESSION['username'];
。session_destroy()
を使用してデータをクリアできます。ただし、これはセッション変数を設定しません。また、すべてのセッション変数を削除するには、 session_unset()
を使用する必要があります。PHPのセッションとCookieの主な違いは次のとおりです。
ストレージ場所:
安全:
サイズの制限:
寿命:
使用法:
ハイジャックを防ぐためにPHPでセッションデータを確保するには、いくつかの戦略が含まれます。
session_regenerate_id()
を定期的に使用するか、ログインが成功した後、古いセッションIDを無効にして新しいものを生成します。 SECUREおよびHTTPONLYフラグを設定します: JavaScriptを介したアクセスを防ぎ、HTTPSを介して送信されることを確認するために、 secure
およびhttponly
フラグを使用してセッションCookieを構成します。
<code class="php">session_set_cookie_params([ 'lifetime' => 0, 'path' => '/', 'domain' => '', 'secure' => true, 'httponly' => true, 'samesite' => 'Strict' ]); session_start();</code>
PHPでのセッションの寿命は、さまざまな手法を通じて管理できます。
デフォルトの寿命:
php.ini
ファイルのsession.gc_maxlifetime
設定によって制御される非アクティブの期間後に削除されます。セッションタイムアウト:
session.cookie_lifetime
とsession.gc_maxlifetime
設定をphp.ini
で調整して、特定のセッションタイムアウトを設定できます。これらの設定は、セッションクッキーの寿命とガベージコレクション期間をそれぞれ制御します。カスタム寿命:
session_set_cookie_params()
を使用して、セッションCookieの生涯を設定することにより、セッションの寿命をプログラムで管理できます。たとえば、セッションを1時間持続するように設定するには:
<code class="php">session_set_cookie_params(3600); // 3600 seconds = 1 hour session_start();</code>
セッション再生:
session_regenerate_id()
で再生することは、セッションCookieを更新することでセッションの寿命を延長するために使用できます。セッションの有効期限:
session_destroy()
を呼び出してセッションを終了し、そのデータをクリアすることにより、セッションを手動で期限切れにすることができます。さらに、 session_unset()
を使用すると、すべてのセッション変数が削除されます。これらの方法を使用することにより、PHPのセッションの寿命を制御および管理して、アプリケーションのニーズを満たすことができます。
以上がセッションがPHPでどのように機能するかを説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。