PHP Cookie和會話管理

2021-08-25 11:37:40 字數 2701 閱讀 6608

建立cookie

setcookie ( 名稱,cookie值,到日期,路徑,網域名稱,secure )

setcookie() 函式必須位於 標籤之前

讀取cookie

使用 $_cookie 變數取回 cookie 的值

<?php

//setcookie(名稱,cookie值,到日期,路徑,網域名稱,secure)

setcookie("user","cookie儲存的值",time()+3600);

if (isset($_cookie["user"]))else

?>

刪除cookie

1. 在瀏覽器中刪除   

在瀏覽器頁面中選擇【工具】選項,下拉單中選擇【internet 選項】

開啟【internet 選項】,在【常規】選項卡中單機【刪除】按鈕

返回【internet 選項】對話方塊,單機【確定】即可完成刪除

2.使用**刪除

將要刪除的 cookie 的 value值 設為空,過期時間小於當前時間

<?php

setcookie("user","cookie儲存的值",time()+3600);

echo $_cookie["user"]; //輸出cookie

//用**刪除cookie

setcookie("user","",time()-1); //將要刪除的cookie的value值設為空,過期時間小於當前時間

cookie 與 session

使用 session 可以不需要手動設定 cookie,可使用 php 中的 session_get_cookie_params() 函式來訪問cookie的內容。這個函式將返回乙個陣列。它的格式為:session_get_cookie_params ( 生存週期,路徑,網域名稱,secure )

在 cookie 或 url 中儲存 session id

如果在 php.ini 中的 session.use_trans_sid 設定為啟用的狀態,就可以自動通過 url 方式傳遞 session id

建立會話

1.php 自動建立:在 php.ini 中設定 session.auto_start 為啟用。使用時應定義此物件的類,必須在建立會話之前載入。

2.使用 session_start() 函式:此函式首先檢查當前是否存在乙個會話。不存在則建立乙個全新的會話,並且此會話可以訪問 $_session 陣列。存在則直接使用這個會話,載入已經註冊過的會話變數,然後使用。

bool session_start(void);    //session_start()函式必須位於標籤之前
<?php

session_start();

?>

3.使用 session_register() 函式:使用 session_register() 之前,需要在 php.ini 檔案中將 register_globals 設定為 no ,然後需要重啟伺服器。session_register() 函式通過為會話登入乙個變數來隱含地啟動會話。

註冊會話變數

會話變數被啟動後,全部儲存在陣列 $_session 中,可通過對其賦值來註冊會話變數。

<?php

session_start(); //啟動session

$_session["name"] = "hello"; //宣告乙個名為的變數,並賦值"hello"

此會話變數的值會在此會話結束或被登出後失效。

使用會話變數

使用會話變數,首先要判斷會話變數是否存在乙個會話 id 。如果不存在,則要建立乙個,並且能夠通過 $_session 變數進行訪問。如果存在,則將這個已經註冊的會員變數載入以供使用者使用。

在訪問 $_session 陣列時,先使用 isset() 或 empty() 來確定 $_session 中會話變數是否為空。

<?php

session_start();

$_session["views"] = 1; //儲存會話變數的值

?>

<?php

echo "瀏覽量=".$_session["views"]; //讀取會話變數的值

?>

註冊和銷毀會話變數

銷毀會話變數使用 unset () 函式即可,如 unset ( $_session [ 'name' ] )。unset 函式用於釋放指定的 session 變數。

<?php

unset($_session['views']);

如果登出所有會話變數,只需向 $_session 賦值乙個空陣列就可以了,如 $_session = array () 。登出完成後,使用 session_unset () 銷毀會話即可,即清除相應的 id 。

<?php

session_destroy();

認證和會話管理漏洞

認證的目的是為了認出使用者是誰,授權的目的是為了決定使用者能夠做什麼 認證是乙個驗證憑據的過程。認證分類 單因素認證 雙因素認證 多因素認證 認證手段 密碼 動態口令 手機驗證 數字證書 單點登入 openid 認證成功後,認證憑證的管理方式 會話管理方式 cookie based 方式 伺服器端s...

作用 和會話期 程序組 程序組和會話

程序組 程序組是指乙個或多個程序的集合。通常與乙個作業相關聯,可以接收來自同一終端的訊號。每個程序組有乙個唯一的程序組id,它類似於程序id,是乙個正整數 其實就是組長程序的程序id 可以通過函式獲得 include pid t getpgrp void 程序組都有乙個組長,組長程序的標識是其程序組...

關於程序和會話

oracle例項有兩種型別 單程序例項和多程序例項。單程序oracle 又稱單使用者oracle 是一種資料庫系統,乙個程序執行全部oracle 由於oracle部分和客戶應用程式不能分別以程序執行,所以oracle的 和使用者的資料庫應用是單個程序執行。在單程序環境下的oracle 例項,僅允許乙...