目次
4 つの回答、4 種類のセッションを含む、厳密に 30 分の期限切れセッション インタビューの質問を PHP で設定します
ホームページ バックエンド開発 PHPチュートリアル PHP での厳密に 30 分の有効期限切れセッションの設定に関するインタビューの質問に対する 4 つの回答、4 種類のセッション_PHP チュートリアル

PHP での厳密に 30 分の有効期限切れセッションの設定に関するインタビューの質問に対する 4 つの回答、4 種類のセッション_PHP チュートリアル

Jul 13, 2016 am 10:21 AM
ini php session 面接の質問

4 つの回答、4 種類のセッションを含む、厳密に 30 分の期限切れセッション インタビューの質問を PHP で設定します

今日私のWeiboに質問を投稿しました:

面接中によく質問します。「30 分で期限切れになるセッションを設定するにはどうすればよいですか?」これには多くの知識が含まれており、基本的なスキルを確認するのに特に適しています。誰が答えるでしょうか?

なぜこの質問をするのですか? 1. stackoverflow でこの問題について議論している人を見かけました 2. よくこの質問をするのを覚えていますので~~

ここで、この質問に答えましょう。

最初の回答

そして、最も一般的な答えは次のとおりです: セッションの有効期限を設定します。これは session.gc_maxlifetime です。この答えは次の理由により正しくありません。 1. まず、この PHP はセッションの gc、つまり session.gc_probability と session.gc_divisor を実行するために一定の確率を使用します (導入については、Session を使用する PHP で発生したアクセス許可拒否通知の解決策を参照してください) ) デフォルト値はそれぞれ 1 と 100 で、セッションの開始時に PHP がセッション gc を実行する可能性が 1% であることを意味します。セッションが 30 分で期限切れになるという保証はありません。

2. 高確率のクリーンアップ機会を設定するのはどうでしょうか? それでも不適切なのは、PHP が統計セッション ファイルの有効期限が切れているかどうかを判断するためです。 , PHP は、セッションに関連するセッション変数を保存するために " "A" ファイルを使用します。 5 分前に a=1 でセッション変数を設定し、5 分後に b=2 で Seesion 変数を設定したとします。すると、この変更時刻がセッションファイルは瞬間bの時間を追加すると、30分でaがクリアできなくなります

下記の3つ目の理由もあります。

3. PHP (例として Linux) は、セッションのデフォルトの保存ディレクトリとして /tmp を使用し、マニュアルにも次のような記述があります。

注: 異なるスクリプトの session.gc_maxlifetime 値が異なるが、セッション データを保存する場所が同じである場合、値が最も小さいスクリプトがデータをクリーンアップします。この場合、このディレクティブを session.save_path と一緒に使用します。

言い換えると、独自の独立した save_path を指定していない 2 つのアプリケーションがある場合、1 つは有効期限を 2 分に設定し (A と仮定します)、もう 1 つは有効期限を 30 分に設定します (B と仮定します)。 A のセッションごとに gc が実行されると、アプリケーション B に属するセッション ファイルも同時に削除されます。

つまり、最初の答えは「完全に厳密に」正しいわけではありません。

2番目の答え

もう 1 つの一般的な答えは次のとおりです: セッション ID のキャリアと Cookie の有効期限 (session.cookie_lifetime) を設定します。この答えも次の理由で正しくありません。

この有効期限は単なる Cookie の有効期限です。つまり、セッションの有効期限はサーバーの有効期限ですが、Cookie の有効期限はクライアント (ブラウザ) によって保証されるだけです。標準ブラウザの有効期限が切れると、この Cookie (セッション ID を含む) は送信されなくなりますが、リクエストを作成する場合は、セッション ID の値を引き続き使用できます。

3番目の答え

memcache、redis などを使用してください。OK、この答えは正しい答えです。ただし、次は明らかに質問者が尋ねるでしょう。PHP を使用した場合はどうなるでしょうか。

4番目の答え

もちろん、面接はあなたを試すためのものではなく、あなたの考えの徹底的さをテストするために行われます。その過程で、私はこれらの落とし穴を指摘しますので、一般的に言えば、質問の意味を満たすアプローチは次のとおりです。

1. Cookie の有効期限を 30 分に設定し、セッションの有効期間を 30 分に設定します。

2. 各セッション値にタイムスタンプを自分で追加します。

3. 各訪問の前にタイムスタンプを決定します。 最後に、なぜ有効期限を 30 分に設定する必要があるのか​​という質問が何人かの学生からありました。第一に、これは面接用であり、第二に、30 分で有効期限が切れるクーポンなど、実際の使用シナリオでの使用ですか?

ありがとう:)

phpセッションは期限切れになりません 有効期限を設定する方法

php セッションは期限切れになります (元はセッション Cookie であり、ブラウザを閉じるとセッションが期限切れになることを意味します)。期限切れを強制したい場合は、次のようにすることができます:
setcookie(session_name(),'', time() - 3600 );session_destroy();

両方を同時に使用できます。
ご質問がございましたら、メッセージを残してください。



phpでセッションの有効期限を設定するには、phpiniではなくコードで設定する必要があります




session_cache_expire を試してみる

例 1. session_cache_expire() example


/* キャッシュ リミッターを 'private' に設定します */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter() ;

/* キャッシュの有効期限を 30 分に設定します */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* セッションを開始します */

session_start();

echo "キャッシュ リミッターは現在$cache_limiter";
echo "キャッシュされたセッション ページは $cache_expire 分後に期限切れになります";
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/854357.html技術記事 PHP で厳密に 30 分の有効期限を設定するセッション インタビューの質問には 4 つの回答があります。今日、セッション 4 が私の Weibo に質問を投稿しました: インタビュー中に、私はよく質問します。「どうやって...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles