ホームページ  >  記事  >  バックエンド開発  >  有効期限なしのPHPセッションを実装する方法

有効期限なしのPHPセッションを実装する方法

藏色散人
藏色散人オリジナル
2020-07-28 09:42:552301ブラウズ

php セッション無期限メソッド: 最初にクライアントを使用して cookie を保存し、次に取得したセッション ID をクライアントの cookie に保存し、次に cookie の値を設定し、最後にその値を「session_id()」に渡します。関数 それです。

有効期限なしのPHPセッションを実装する方法

PHP で期限切れのないセッションのソリューションのアイデアと実装方法を共有します。

php.ini を開きます。設定ファイルの 3 行を次のように変更します。

関連する推奨事項: "php session session (topic)"

1, session.use_cookies

この値を 1 に設定し、cookie を使用して sessionid を渡します

2, session.cookie_lifetime

これは、SessionID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。はブラウザを表します。SessionID は閉じるとすぐに無効になります... これが原因で PHP セッションを永続的に使用することができなくなります。そこで、非常に大きいと思われる数値に設定しましょう。999999999 はどうでしょうか。はい、それだけです。

3. session.gc_maxlifetime

これは、セッション データがサーバー側に保存される時間です。この時間を超えると、セッション データは自動的に削除されます。 99999999まで。

以上です。すべて問題ありません。もちろん、信じられない場合は、テストして確認してください。セッションをセットアップし、10 日半後に戻ってきて、コンピューターが正常に動作していないかどうかを確認してください。電源がオフまたはダウンしている場合でも、セッション ID は表示されます。

もちろん、あなたにサーバーを制御する権限がなく、私ほど幸運にも php.ini 設定を変更できない可能性もあります。私たちには自分自身に頼る方法があります。 Cookie を保存するにはクライアントを使用する必要がありますよね? 取得した sessionID はクライアントの Cookie に保存され、この Cookie の値を設定し、この値を session_id() 関数に渡します。具体的な方法は次のとおりです。

<?php 
session_start(); // 启动Session 
$_SESSION[&#39;count&#39;]; // 注册Session变量Count 
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); 
// 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID 
$_SESSION[&#39;count&#39;]++; // 变量count加1 
setcookie(&#39;PHPSESSID&#39;, $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中 
echo $count; // 显示Session变量count的值 
?>

注: setcookie 行の 'PHPSESSID' は不確実で、変更されている可能性があります。最良の方法は、phpinfo() 関数を使用してセッションの値を確認することです。より科学的な名前です。

以上が有効期限なしのPHPセッションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。