#php でのセッション時間設定の詳細説明
1. クライアントは cookie を禁止していません
(1) session_set_cookie_params() を使用してセッションの有効期限を設定します この関数は、セッションと Cookie を組み合わせて有効期限を設定します。セッションを 1 分後に期限切れにする場合のコード例は次のとおりです。
<?php
$time = 1*60; //设置session失效时间
session_set_cookie_params($time); // 使用函数
session_start(); //初始化 session
$_SESSION["username"] = 'tom';
?>
ログイン後にコピー
注: session_set_cookie_params() は session_start() の前に呼び出す必要があります。
注: この機能は推奨されず、一部のブラウザでは問題が発生する可能性があります。したがって、有効期限は通常手動で設定されます。
(2) setcookie() 関数を使用して、セッションの有効期限を設定します。セッションを 1 分後に期限切れにするには、コード例は次のとおりです:
<?php
session_start();
// session失效时间
$time = 1*60;
// 使用 setcookie 手动设置 session失效时间
setcookie(session_name(),session_id(),time()+$time.'/');
$_SESSION["username"] = 'tom';
?>
ログイン後にコピー
説明:上記のコード例 setcookie() 関数では、session_name はセッションの名前、session_id はクライアント ユーザーの ID です。session_id はランダムに生成された一意の名前であるため、セッションは比較的安全です。有効期限は Cookie と同じです。最後のパラメータはオプションで、Cookie が配置されるパスです。
2. クライアントが Cookie を無効にします
クライアントが Cookie を無効にすると、セッション ページ間の転送が無効になります。大規模なスーパーマーケット チェーンとしてクライアントが Cookie を無効にすると想像できます。スーパーマーケットで会員カードをお申込みいただいた場合、スーパーマーケット間にインターネット回線が接続されていない場合、その会員カードはお申込みいただいたスーパーマーケットでのみご利用いただけます。この問題を解決するには、いくつかの方法があります。
(1) ログインする前に Cookie をオンにする必要があることをユーザーに通知します。これは多くのフォーラムで行われています。
(2) php.ini ファイルで session.use_trans_sid =1 を設定するか、コンパイル時に -enable-trans-sid オプションをオンにして、PHP がページ間で session_id を自動的に渡すようにします。
(3) 隠しフォームの session_id を GET メソッドで渡します。
(4) ファイルまたはデータベースを使用して session_id を保存し、ページ間の転送中に手動で呼び出します。
ユーザーはサーバーの php.ini ファイルを変更できないため、上記の 2 番目の方法については詳しくは紹介しません。 3 番目の方法では、Cookie を使用して有効期限を設定することはできませんが、ログイン状態は変わりません。 4 番目の最も重要な方法は、エンタープライズ レベルの Web サイトを開発するときに、サーバーの速度を低下させる
session ファイルが発生した場合に使用できます。ここでは GET メソッドを使用した 3 番目の送信方法を紹介します サンプルコードは次のとおりです ページヘッダーを受信するコード:
<?php
$session_name = session_name(); //取得 session 名称
$session_id = $_GET[$session_name]; // 取得 session_id GET方式
session_id($session_id); // 关键步骤
session_start();
$_SESSION['admin'] = 'soft';
?>
ログイン後にコピー
説明: ページをリクエストした後、セッションは session_id を生成します。 Cookie が無効になっている場合、session_id を渡すことができず、次のページをリクエストするときに session_id が再生成されるため、ページ間のセッションの受け渡しに失敗します。
推奨チュートリアル: 「
PHP チュートリアル 」
以上がPHPでのセッション時間設定の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。