検索
ホームページバックエンド開発PHPの問題PHPセッションが機能しない場合の対処方法

php セッションが機能しない問題の解決策: まず、ページの先頭で「session_save_path()」関数を呼び出し、次にセッションが保存されているディレクトリを専用のディレクトリに指定します。

PHPセッションが機能しない場合の対処方法

# 推奨事項: 「

PHP ビデオ チュートリアル

php セッション失敗の原因

最近、会社のプロジェクトでプログラム実行後、数分以内にセッションが失敗するという問題が発生しました。その後ネットでずっと読んで仕組みを理解しましたが、Session は Lunix のパブリックパスに保存されているため問題が発生し、プログラム内に Session アプリケーションが多数存在すると相互に影響を及ぼします。

その後、session.gc_maxlifetime を変更しようとしましたが、このパラメータは基本的に機能しないことがわかりました。デフォルトでは、PHP のセッション情報はテキスト ファイルの形式でシステムの一時ファイル ディレクトリに保存されます。このパスは、構成パラメータ session.save_path によって指定されます。 Linux では、このパスは通常 \tmp であり、Windows では通常 C:\Windows\Temp です。サーバー上に複数の PHP アプリケーションがある場合、それらは同じディレクトリにセッション ファイルを保存します (同じ session.save_path パラメータを使用するため)。同様に、これらの PHP アプリケーションも一定の確率で GC を開始し、すべてのセッション ファイルをスキャンします。

問題は、GC が動作しているときに、異なるサイト上のセッションが区別されないことです。たとえば、サイト A の gc_maxlifetime は 2 時間に設定され、サイト B の gc_maxlifetime はデフォルトの 24 分に設定されます。サイト B の GC が開始されると、パブリック一時ファイル ディレクトリがスキャンされ、サイト A からのものかサイト B からのものかに関係なく、24 分より古いすべてのセッション ファイルが削除されます。このように、サイト A の gc_maxlifetime 設定は役に立ちません。

具体的な操作としては、各プロジェクトに独自のセッション パスがあるため、問題を見つけて解決するのは非常に簡単です。ページの先頭で session_save_path() 関数を呼び出します。これにより、session.save_path パラメータが変更され、セッションが保存されるディレクトリが \tmp\myapp\ などの専用ディレクトリに指定されます。このようにして、gc_maxlifetime パラメータは正常に機能します。

特定のコード:

session_start();
ini_set('session.save_path','/tmp/');
//6个钟头
ini_set('session.gc_maxlifetime',21600);
//保存一天
$lifeTime = 24 * 3600;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");

以上がPHPセッションが機能しない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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