PHP會話控制

2021-07-10 10:12:29 字數 1228 閱讀 6728

簡述

http協議是無狀態的。那個瀏覽器如何區分每個使用者呢?php會話控制會給每乙個使用者一把鑰匙(加密的session_id).同時這個也是使用者的乙個標識,伺服器端存放這把鑰匙的所有資訊(資料庫、檔案、記憶體資料庫)。

那麼這把鑰匙放到那呢?兩種方法:

1是存在每個url中

2是存在會話中,也就是常說的cookie.

傳統的php session使用

<?php

啟動乙個會話並註冊乙個變數

session_start();

$_session['user_var'] = "hello,codekissyoung!";

//這裡的可以將$_session理解為使用者的箱子,實際的實現是php在伺服器端生成的小檔案

?>

<?php

session_start();

echo

$_session['user_var'];//通過鑰匙訪問自己的箱子內的變數

$_session['user_var'] = "bey,codekissyoung!";

?>

<?php

銷毀鑰匙,一般在使用者登出時,訪問test3.php檔案

session_start();

session_destroy();

?>

當你訪問test1.php時候,當執行到session_start()的時候。php會根據此時的條件(使用者ip,瀏覽器編號,時間等)去生成乙個php session_id。當heep response 會客戶端後。這個session_id就存到你的瀏覽器cookie了。每次當你訪問這個url路由的時候,該session就會返回到伺服器端,而這麼session_id就是剛才所說的鑰匙了。

怎麼實現php跨域操作->session共享

多個子系統公用一套驗證體系。即在一處登入後,其他部分不用登入,即可訪問。

假設使用者在a伺服器上拿到一把鑰匙。並且用這把鑰匙去開b伺服器上的箱子。結果呢?當然不行。

解決方案:簡單說一下思路。使用者無論訪問a還是b都會生成一把鑰匙,我們把鑰匙放到c伺服器上。每次訪問a或者b的時候,都先去c上驗證是否ok。ok的話,就開啟箱子。

PHP會話控制

區別 a 存放位置不一樣 b 安全級別不同 因為cookie是存放到客戶端上,所以cookie內容可以被修改。相對cookie是不安全。不建議將一些敏感資訊存放到cookie中。c 大小不一樣 單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie。理論上認為se...

php 會話控制

會話控制 http 協議是 無狀態的協議 無狀態 http協議不能告訴我們多個請求是否來自同乙個客戶端 會話控制 允許伺服器跟蹤同乙個客戶端做出的連續請求 cookie 儲存在客戶端 session 儲存在服務端 設定cookie setcookie cookie名 cookie值 有效日期,路徑,...

php 會話控制

會話控制 http協議,在tcp協議基礎上的 http協議稱為無狀態協議 session cookie session特點 1.儲存在伺服器。2.每個使用者都會生成乙個session。3.有預設的過期時間大概15分鐘左右。4.可以儲存任意型別的資料 cookie特點 1.儲存在客戶端。2.每個使用者...