session_set_cookie_paramsは、セッションCookieのさまざまなパラメーターを設定するために使用されます。基本的な使用法は次のとおりです。
session_set_cookie_params([
'lifetime' => 3600, // cookie 有効期限(2番)
'path' => '/', // cookie パス
'domain' => 'm66.net', // cookie ドメイン名
'secure' => true, // 合格するだけかどうか HTTPS 伝染 ; 感染
'httponly' => true, // クライアントを防ぎます JavaScript アクセス cookie
]);
この関数は、PHPセッションCookieの生成に影響します。これは、通常、 session_start()を呼び出す前に行われます。ただし、 session_set_cookie_paramsは既存のPHPセッションに影響しますか?
SESSION_SET_COOKIE_PARAMSによって設定されたセッションCookieパラメーターは、作成された後続のセッションにのみ効果的です。セッションを開始するためにsession_start()に電話すると、PHPは新しいセッションCookieを作成します。このCookieは、 session_set_cookie_paramsで定義するパラメーターに基づいて生成されます。
ただし、セッションを開始した場合( session_start() )、 session_set_cookie_paramsを呼び出しても、現在のセッションで使用されるCookieには影響しません。既存のセッションのCookieが生成されており、これらのパラメーターは次にリクエストしたときに更新されません。したがって、 session_set_cookie_paramsは既存のセッションですぐに有効になりません。
次の2つの状況でsession_set_cookie_paramsに電話するとします。
// 最初の状況:セッションが開始される前の設定 cookie パラメーター
session_set_cookie_params([
'lifetime' => 3600,
'domain' => 'm66.net'
]);
session_start();
この場合、セッションのCookieは、設定したドメインと寿命に基づいて生成されます。
そして、あなたがセッションを開始した場合:
// 2番目の状況:セッションが開始された後に電話してください session_set_cookie_params
session_start(); // セッションを開始します
session_set_cookie_params([
'domain' => 'm66.net',
'lifetime' => 7200
]);
この場合、 session_set_cookie_paramsは現在のセッションに影響を与えません。新しいCookieパラメーターは、次回のsession_start()が呼び出される時点でのみ有効になります。
既存のセッションパラメーターを変更する必要がある場合(Cookieの有効期限など)、 $ _Sessionアレイの値を変更することでセッションコンテンツを間接的に制御できますが、既存のセッションCookieを直接変更することはできません。
session_start(); // セッションを開始します
$_SESSION['user'] = 'example'; // 設定 session コンテンツ
// 如果需要修改会话有効期限,サーバー側のロジックで調整を行うことができます,
// ただし、既存のセッションを直接変更することはできません cookie。