ホームページ >バックエンド開発 >PHPの問題 >PHPでセッションIDを設定する方法

PHPでセッションIDを設定する方法

藏色散人
藏色散人オリジナル
2021-03-22 09:10:023639ブラウズ

php でセッション ID を設定する方法: まず PHP サンプル ファイルを作成し、次に「session_id("...");session_start();」ステートメントを通じてセッション ID を設定します。

PHPでセッションIDを設定する方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php session_id() を取得しますまたは、セッションセッション ID を設定します

php session_id() 関数は、現在保存されているセッションの ID を取得または再構成できますこの記事では、セッションを復元するためのセッションの生成プロセスと session_id の内容を紹介します。必要な場合はそれを参照できます。

session_id() 関数の概要

session_id() はセッション ID を取得または設定します

構文:

string session_id(string [id]);

パラメータ ID がない場合は、現在のセッション コードのみが取得できることを意味し、パラメータを追加すると、セッション コードが新たに指定された ID に設定されます。入力と戻り値は両方とも文字列です。

パラメータ ID が設定されていない場合はセッション ID を取得することを意味し、それ以外の場合はセッションを新しく指定された ID に設定することを意味します。

注: ID はすべて文字列形式です。

session_id() インスタンス

セッション ID の取得

<?php
session_start(); 
echo session_id();
// 输出 urles147jbrq3u50b0l6f8hvf0
?>

セッション ID の設定

<?php
session_id("ilovemanongjc.com");
session_start(); 
    /* http://www.manongjc.com/article/1260.html */
echo session_id();
// 输出 ilovemanongjc.com
?>

セッション生成プロセスの概要

Web サイトを訪問する訪問者には、いわゆるセッション ID と呼ばれる一意の ID が割り当てられます。この ID は、 user 最後の Cookie では、URL を介して渡すこともできます。Session セッションは、各ユーザーのセッションを追跡するために使用され、ユーザーを区別するためにサーバーによって生成された SessionID によって識別されます。セッションはサーバーのメモリに保存され、SessionID はサーバーのメモリとクライアントの Cookie に保存されます。このようにして、ユーザーがリクエストを行うと、サーバーはユーザーの Cookie に記録されているセッション ID とサーバーのメモリ内のセッション ID を比較し、ユーザーに対応するセッションを見つけて操作します。したがって、クライアントが Cookie を無効にすると、セッションは使用できなくなります。

PHP セッション ID はどのように生成されますか? PHP のデフォルトのセッション ID 生成アルゴリズムの紹介

php5.3.6 のソース コードを例に挙げると、/ext/session ディレクトリに入り、セッション ID を生成する関数はセッションの 345 行目にあります。 c ファイル。C 言語関数のプロトタイプは次のとおりです:

PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);

[推奨学習:

PHP ビデオ チュートリアル]

session_id セッションの内容を復元する方法

PHP セッションは、Java とは異なり、プログラムによって復元できます。 PHP セッションはファイルまたはデータベースの形式で保存されるため、セッション回復メカニズムでは複数のアプリケーション セッションの共有を実現できます。まず、session_id() 関数を通じて session_id を取得し、この値を渡すことができます。

プログラムがセッションを復元するときは、まず session_id を知る必要があります。セッションが session_id($id); によって復元されることはマニュアルでわかりますが、復元するときは順序に注意する必要があります。前のセッションのコンテンツを取得するには、session_id($id) を実行する前に session_start.() でセッションを開始する必要があり、session_start の実行時にセッションを初期化するときに前のコンテンツを復元できます。セッションしても何も得られません。セッションは以前に再初期化されました。これは、session_start() の関数と密接に関連しています。session_start は、セッションを初期化する必要があり、セッション ファイルからセッションのコンテンツを逆シリアル化する必要があることを PHP に指示するため、session_start の関数は、以前に保存されたファイルのコンテンツを逆シリアル化することになります。 session_start のシリアル化の前に session_id を知っている必要があります。そうでない場合は、新しい session_id を生成します。その場合は、対応するファイルの内容を逆シリアル化します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。