PHP セッションを期限切れにしないように設定する方法_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:55:45
オリジナル
993 人が閲覧しました

この記事では、php セッションを期限切れにしないように設定するいくつかの方法を紹介します。プログラムを変更しないことが最善の方法です。プログラムが変更されると、テスト部門は私と同じように非常に憂鬱になるため、システムを変更する唯一の方法があります。環境設定は実際には非常に簡単で、php.ini 設定ファイルを開き

3 行を次のように変更します:

1.セッション.use_cookies
この値を 1 に設定し、Cookie を使用してセッション ID を渡します

2.セッション.クッキー_ライフタイム
これは、セッション ID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐにセッション ID が無効になることを意味します。このため、PHP セッションは永続的に使用できません。 ! それでは、大きいと思われる数値に設定しましょう。999999999 はどうでしょうか。それでOKです。それだけです。

3.セッション.gc_maxlifetime
これは、セッション データがサーバー側に保存される時間です。この時間を超えると、セッション データは自動的に削除されます。 そこで、これも 99999999 に設定しましょう。

それだけです。すべて問題ありません。もちろん、信じられない場合は、テストしてください。コンピュータの電源がオフまたはダウンしていなくても、セッションをセットアップして 10 日半後に戻ってください。このセッションIDを参照してください。

もちろん、あなたがサーバーを制御する権限を持っておらず、php.ini 設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法があります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡します。具体的な方法は次のとおりです。

コードは次のとおりですコードをコピー 久しぶりに戻ってきてこのページを更新すると (どのくらい時間が経ったかは自分の目で確認できます)、出力される数値が離れたときよりも 1 大きくなっていれば、それは正しいことです。それがはるかに大きい場合は、誰かがあなたのコンピュータに触れた可能性があり、このテストは不正確になります。ははは...ちょっと外に出てください。
session_start(); // セッションを開始します
$_SESSION['count'] // セッション変数の数を登録します
; isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); // $PHPSESSID が設定されている場合は、SessionID を $PHPSESSID に割り当て、そうでない場合は SessionID を生成します

$_SESSION['count']++ // 変数 count に 1 を加算します
; setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // セッション ID を Cookie に保存します
echo $count; // セッション変数 count の値を表示します
?>

注: setcookie 行の 'PHPSESSID' は確実ではありません。変更マニアに悩まされているネットワーク管理者に遭遇した場合、最善の方法は phpinfo() 関数を使用して確認することです。 session.name の値。これはより科学的です。

http://www.bkjia.com/PHPjc/632236.html

tru​​ehttp://www.bkjia.com/PHPjc/632236.html技術記事この記事では、PHP セッションを期限切れにしないように設定するいくつかの方法を紹介します。プログラムを変更しないことが最善の方法です。プログラムが変更されると、テスト部門は私と同じように非常に憂鬱になるでしょう...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート