PHP-セッション技術
2867 ワード
1概要
セッション・テクノロジーとは、1つのブラウザとサーバがセッション中(ブラウザが閉じていない)に、各リクエストの異なるスクリプト間でいくつかのデータを共有できるテクノロジーをセッション・テクノロジーと呼ぶ.
よく使われる会話技術は2種類あります.Cookie技術:ブラウザにデータを保存し、異なるPHPスクリプトの間でブラウザ上のデータ 2を共有することができる.Sessionテクノロジー:サーバ側にデータを保存し、異なるPHPスクリプト間でサーバ側のSessionデータを共有できます.
2 Cookie技術
Cookieは、クライアントブラウザのメモリまたはハードディスクに格納されるサーバからクライアントに送信されるフラグメント情報である.ブラウザが要求を開始すると,HTTP要求のヘッダを介してこれらのフラグメント情報をサーバに返信する.
2.1サービス側がクライアントにCookieを追加する
PHPでCookieを設定する関数は次のとおりです.
配列の設定
2.2サービス側読み取りCookie
2.3サービス側クライアントCookieの削除
3 Sessionテクノロジー
Cookie技術はユーザクライアントのコンピュータに資料を保存するため、大きな論争を引き起こし、ユーザはCookieの使用を阻止する権利があり、サーバがCookieを通じてユーザを追跡できない.
Sessionテクノロジーは、ユーザーの関連データをサーバに配置し、サーバは32ビット16進数の文字列であるSession IDをユーザーに作成します.
Sessionを使用して1人のユーザを追跡し、各ページの間にSession IDを渡し、Session IDを介してサーバで対応するデータを取得する.一般的なSession IDの伝送方法は2種類ある: 1.Cookieに基づいてSession ID 2を伝達する.URLパラメータで渡す
3.1セッションの宣言と使用
Sessionテクノロジーを使用するには、
3.1セッションの書き込みと読み取り
3.2セッションログアウト
Sessionログアウトは4つのステップに分けられます.セッションを開きます.すべてのセッション変数 3を削除します.クライアントに格納されているセッションID 4を削除する.サービス側に保存されているセッションファイルの削除
セッションがCookieに基づいている場合は、CookieにセッションIDが保存されていることもクリアする必要があります.
セッションファイルの削除
最終セッションのログアウト方法:
参考記事
先端に必要なHTTPスキルのクッキー技術詳細:https://www.jianshu.com/p/2ceeaef92f20
セッション・テクノロジーとは、1つのブラウザとサーバがセッション中(ブラウザが閉じていない)に、各リクエストの異なるスクリプト間でいくつかのデータを共有できるテクノロジーをセッション・テクノロジーと呼ぶ.
よく使われる会話技術は2種類あります.Cookie技術:ブラウザにデータを保存し、異なるPHPスクリプトの間でブラウザ上のデータ 2を共有することができる.Sessionテクノロジー:サーバ側にデータを保存し、異なるPHPスクリプト間でサーバ側のSessionデータを共有できます.
2 Cookie技術
Cookieは、クライアントブラウザのメモリまたはハードディスクに格納されるサーバからクライアントに送信されるフラグメント情報である.ブラウザが要求を開始すると,HTTP要求のヘッダを介してこれらのフラグメント情報をサーバに返信する.
2.1サービス側がクライアントにCookieを追加する
PHPでCookieを設定する関数は次のとおりです.
function setcookie ($name, $value = "", $expire = 0, $path = "", $domain = "", $secure = false, $httponly = false)
setcookie('isLogin', '1', time() + 3600);
配列の設定
setcookie('user[username]', 'Lucy');
setcookie('user[password]', '123456');
2.2サービス側読み取りCookie
$_COOKIE['username']
2.3サービス側クライアントCookieの削除
$expirtTime = time() - 3600;
setcookie('username', '', $expirtTime);
3 Sessionテクノロジー
Cookie技術はユーザクライアントのコンピュータに資料を保存するため、大きな論争を引き起こし、ユーザはCookieの使用を阻止する権利があり、サーバがCookieを通じてユーザを追跡できない.
Sessionテクノロジーは、ユーザーの関連データをサーバに配置し、サーバは32ビット16進数の文字列であるSession IDをユーザーに作成します.
Sessionを使用して1人のユーザを追跡し、各ページの間にSession IDを渡し、Session IDを介してサーバで対応するデータを取得する.一般的なSession IDの伝送方法は2種類ある: 1.Cookieに基づいてSession ID 2を伝達する.URLパラメータで渡す
3.1セッションの宣言と使用
Sessionテクノロジーを使用するには、
session_start()
関数を呼び出し、関連する環境変数を事前にロードする必要があります.この関数には2つの主要な役割がある:セッションを開始します.既存のセッションを返すbool session_start ([ array $options = [] ] ) //PHP 7.0,The options parameter was added.
3.1セッションの書き込みと読み取り
session_start()
関数を呼び出すと、$_SESSION
グローバル配列を操作できます.$_SESSION['username'] = 'admin';
$username = $_SESSION['username'];
3.2セッションログアウト
Sessionログアウトは4つのステップに分けられます.セッションを開きます.すべてのセッション変数 3を削除します.クライアントに格納されているセッションID 4を削除する.サービス側に保存されているセッションファイルの削除
unset()
関数を使用して単一の変数を解放するか、空の配列を割り当ててすべての変数を削除できます.unset($_SESSION['username']);
$_SESSION = array();
セッションがCookieに基づいている場合は、CookieにセッションIDが保存されていることもクリアする必要があります.
if (isset($_COOKIE[session_name()])) {
// php.init
setcookie(session_name(),'', time() - 3600,'/');
}
セッションファイルの削除
session_destroy();
最終セッションのログアウト方法:
function clearSession() {
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
// php.init
setcookie(session_name(),'', time() - 3600,'/');
}
session_destroy();
}
参考記事
先端に必要なHTTPスキルのクッキー技術詳細:https://www.jianshu.com/p/2ceeaef92f20