PHPセッションのクロスページ損失の問題を解決する方法

PHPz
リリース: 2023-03-05 22:30:01
オリジナル
2945 人が閲覧しました

PHP セッションがページ間で失われた場合の解決策: 1. 「php.ini」で「session.use_trans_sid=1」を設定します; 2. URL を通じて値を手動で渡すか、非表示のフォームを通じてセッション ID を渡します。 3. 「session_i」をファイルまたはデータベースの形式で保存します。

PHPセッションのクロスページ損失の問題を解決する方法

推奨: 「PHP ビデオ チュートリアル

はじめに:

PHP で SESSION が失われます( ページをまたいで移動することはできません) 解決策

一般的に、次の点が原因でセッションが失われます:

1. クライアントは Cookie を無効にしています

2. ブラウザはセッションを失うことができます。 save php.ini で cookie

3、session.use_trans_sid=0 を取得するか、-enable-trans-sid オプションをオンにせずにコンパイルします

セッションはサーバー側に保存されます (デフォルトでは、ファイルに保存されます)、クライアントから提供されたセッション ID に基づいてユーザーのファイルを取得します。

変数の値を取得します。セッション ID はクライアントの Cookie または Query_String

を使用できます。 Http1.1プロトコルの

(アクセスされたURL(?以降の部分))がサーバーに送信され、サーバーはSessionディレクトリを読み込みます...つまり、

session id は、サービス上に格納されているセッション変数を取得するための ID カードです。 session_start(); というコードを実行すると、サーバー上にセッションファイルが生成され、それに一意に対応するセッションIDも生成されます。フォームは生成されたばかりのセッション ファイルに保存されます。セッション ID を通じて、

は定義された変数を取得できます。ページを移動した後、セッションを使用するには、session_start() を実行する必要があります。

別のセッション ファイルが生成され、それに対応して、対応するセッション ID が生成されます。

使用方法このセッション ID は、このセッション ID がそれを開くための「キー」ではないため、前述の最初のセッション ファイルの変数を取得できません。

。 session_start();

の前にコード session_id ($session id); を追加すると、新しいセッション ファイルは生成されず、

この ID に対応するセッション ファイルが直接読み取られます。

PHP のセッションは、デフォルトでクライアントの Cookie を使用してセッション ID を保存します。

したがって、クライアントの Cookie に問題があると、セッションに影響します。次の点に注意してください:

session は必ずしも cookie に依存する必要はありません。これは、cookie と比較したセッションの優れた点でもあります。

クライアントの Cookie が無効になっている場合、または問題がある場合、PHP はセッション ID を URL に自動的に添付します。

このようにして、セッション変数はセッションを通じてページ間で使用できます。 ID。ただし、この添付ファイルには特定の条件もあります。

つまり、「php.ini の session.use_trans_sid = 1、またはコンパイル中に –enable-trans-sid オプションがオンになっている」ということです。

上記の原則を理解した上で、Cookie を脇に置いてセッションを使用しましょう。主な方法は 3 つあります:

1. php.ini で session.use_trans_sid = 1 を設定するか、コンパイル中に開きます。 –enable-trans-sid オプションを使用すると、

PHP がページ間でセッション ID を自動的に渡します。

2. URL を通じて値を手動で渡し、非表示のフォームを通じてセッション ID を渡します。

3. session_id をファイル、データベースなどに保存し、クロスページ プロセス中に手動で呼び出します。

以上がPHPセッションのクロスページ損失の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート