セッションのサポートが PHP4.0 に追加され、ショッピング カートなどの多くのプログラムが容易になります。
多くのフォーラムでは、Session はユーザーのログインを処理し、ユーザー名とパスワードを記録するためにも使用されているため、ユーザーは毎回ユーザー名とパスワードを入力する必要がありません。ただし、一般的なセッションの有効期間は制限されており、ユーザーがブラウザを閉じると、セッション変数は保存できません。では、Session の永続的な寿命を達成するにはどうすればよいでしょうか?
ご存知のとおり、セッションはクライアントから提供されたセッション ID に基づいてサーバー側に保存され、そのファイルはクライアントの変数の値を取得するために読み取られます。 Cookie または Http1.1 プロトコルの Query_String (つまり、アクセスされた URL の "?" 以降の部分) がサーバーに送信され、サーバーはセッションのディレクトリを読み取ります...
セッションの永続的な存続期間を理解するには、まず php.ini のセッションの関連設定を理解する必要があります (php.ini ファイルの「[セッション]」セクションを開きます):
1. session.use_cookies:デフォルト値は「1」です。これは、SessionID が Cookie によって渡されることを意味します。それ以外の場合は、Query_String
2 によって渡されます。 session.name: これは、Cookie または Query_String によって渡される可能性がある、SessionID に格納される変数名です。デフォルト値は「PHPSESSID」です。
3. session.cookie_lifetime: これは、SessionID がクライアント Cookie に保存される時間を表します。これは、ブラウザが閉じるとすぐに SessionID が無効になることを意味します。それは... このため、セッションは永続的に使用できなくなります。
4. session.gc_maxlifetime: セッション データがサーバー側に保存される時間です。この時間を超えると、セッション データは自動的に削除されます。
他にも多くの設定がありますが、これらはこの記事に関連するものであり、永続セッションを使用するための原則と手順から始めましょう。
前に述べたように、サーバーは SessionID を通じてセッション データを読み取りますが、通常、ブラウザーから送信された SessionID はブラウザーを閉じると失われるため、SessionID を手動で設定して保存するだけで済みます。いいえ...
サーバーの操作権限がある場合、これを設定するのは非常に簡単です。次の手順を実行するだけです:
1. "session.use_cookies" を 1 に設定し、セッション ID を保存するための Cookie をオンにします。ただし、デフォルトは 1 であり、通常は変更する必要はありません。
2. "session.cookie_lifetime" を正の無限大に変更します (もちろん、正の無限大のパラメーターはありませんが、999999999 と正の無限大には違いはありません)。 🎜>3. 「session.gc_maxlifetime」を設定します。これは「session.cookie_lifetime」と同じです。
設定後、エディタを開いて次のコードを入力します:
---------- ---------------- ---------------------------------- -------------- --------------
<
session_start(); ");
$count ;
echo $count;
?>
---------------------- ---------------- ---------------------------------- --------------
次に、「session_check.php」として保存し、ブラウザを使用して「session_check.php」を開き、「1」が表示されることを確認してからブラウザを閉じます。次に、ブラウザを開いて「session_check.php」にアクセスします。「2」が表示されれば成功です。失敗した場合は、以前の設定を確認してください。
ただし、サーバーを操作する権限がない場合は、永続的なセッション データの保存を実現するために、PHP プログラムを通じて SessionID を書き換える必要があります。 php.net の関数マニュアルを確認すると、「session_id」関数が表示されます。パラメータが設定されていない場合は、現在のセッション ID が返されます。パラメータが設定されている場合は、現在のセッション ID が指定された値に設定されます。
永続的な Cookie を使用し、「session_id」関数を追加する限り、永続的なセッション データを保存できます。
ただし、便宜上、サーバーによって設定された「session.name」を知る必要がありますが、ほとんどのユーザーはサーバーの php.ini 設定を表示する権限を持っていません。ただし、PHP には非常に優れた関数「phpinfo」が用意されています。 」を使用すると、ほぼすべての PHP 情報が表示されます。
----------------------------------------------- -- -------------------------------------