ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでセッションの有効期限を設定する方法

php_PHP チュートリアルでセッションの有効期限を設定する方法

WBOY
WBOYオリジナル
2016-07-13 16:56:55805ブラウズ

Apache および php 環境では、デフォルトの有効期限は約 20 分です。では、セッションの有効期限をどのように設定すればよいでしょうか。以下に具体的な方法の概要を見てみましょう。

最も一般的に使用されるのは、php プログラムで設定することです

コードは次のとおりです コードをコピー

if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)
$_SESSION['last_access'] = 時間();
?>

有効期限を設定したい場合は、プログラム内でインスタンス化することもできます

コードは次のとおりです コードをコピー

unset($_SESSION['last_access']) または $_SESSION['last_access']='';
?>

セッションには有効期限メカニズムがあります


session.gc_maxlifetime セッションの有効期限が発生する確率は小さいことがわかります。 session.gc_probability と session.gc_divisor は、セッション内で gc が実行される確率を決定するために使用されます。 session.gc_probability と session.gc_divisor のデフォルト値は 1 です。それぞれ 100

はそれぞれ分子と分母であるため、セッション内で GC が実行される確率は 1% です。これら 2 つの値を変更すると、PHP の効率が低下します。したがって、このアプローチは間違っています! !

そのため、php.ini ファイルの gc_maxlifetime 変数を変更すると、セッションの有効期限を延長できます: (たとえば、有効期限を 86400 秒に変更します)

コードは次のとおりです コードをコピー

session.gc_maxlifetime = 86400

その後、Web サービス (通常は Apache) を再起動します。

セッションの「リサイクル」はいつ行われますか?

デフォルトでは、すべての PHP リクエストに対して 1/100 の確率でリサイクルが行われるため、単純に「100 個の PHP リクエストごとに 1 回のリサイクルが発生する」と理解できます。この確率は次のパラメータによって制御されます

コードは次のとおりです コードをコピー

#確率は gc_probability/gc_divisor です
session.gc_probability = 1
session.gc_divisor = 100


注 1: この場合、gc_maxlifetime=120 と仮定します。セッション ファイルが最後に変更されたのが 120 秒前であれば、セッションは次のリサイクル (1/100 の確率) が発生するまで有効です。

注 2: セッションが session.save_path を使用してセッションを別の場所に保存する場合、セッションリサイクルメカニズムは期限切れのセッションファイルを自動的に処理しない可能性があります。現時点では、期限切れのセッションを手動 (または crontab) で削除する必要があります。 cd /path/to/sessions; find -cmin +24 |

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

tru​​ehttp://www.bkjia.com/PHPjc/631569.html技術記事 ApacheやPHPの環境では、デフォルトの有効期限は20分程度となっていますが、どのようにしてセッションの有効期限を設定すればよいのでしょうか、以下に具体的な方法をまとめて見てみましょう。 最も一般的に使用されるのは、php プログラムで設定することです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。