一、setcookie參數簡介
setcookie()函數是PHP用於設置cookie的方法,對於需要在網頁間交互數據的web應用,cookie是一個非常有力的方式,可以存儲一些簡單的變量,如用戶的偏好設置等,在後續的請求中傳遞給服務器端。本文將介紹setcookie函數的常用參數及其用途。
二、setcookie參數之name
setcookie函數的第一個參數name是cookie的名稱,我們一般使用英文字符串表示。同時,name是必須要設置的參數,否則很難在後續的請求中獲取到cookie的值。例如以下代碼表示設置了名為username的cookie:
setcookie('username', 'Bob', time() + 60 * 60 * 24 * 7);
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一周內有效。
三、setcookie參數之value
setcookie函數的第二個參數value表示cookie的值,可以是任何字符串。例如我們可以設置一個email的cookie:
setcookie('email', 'bob@example.com', time() + 60 * 60 * 24 * 7);
以上代碼將在客戶端保存一個名為email的cookie,其值為bob@example.com。這個cookie將在一周內有效。
四、setcookie參數之expires
setcookie函數的第三個參數expires表示cookie的過期時間,是一個時間戳(以秒為單位)。設置過期時間後,客戶端將在該時間之後自動刪除該cookie。例如我們希望設置一個一個名為username的cookie,其值為Bob且過期時間是一小時之後:
setcookie('username', 'Bob', time() + 60 * 60);
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一小時內有效。
五、setcookie參數之path
setcookie函數的第四個參數path表示cookie的有效路徑。默認情況下,cookie只能被設置為當前目錄及其子目錄中的腳本訪問。例如我們希望設置一個一個名為username的cookie,其值為Bob且只能在根目錄下使用:
setcookie('username', 'Bob', time() + 60 * 60, '/');
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一小時內有效,且可以在根目錄及其子目錄中的腳本訪問。
六、setcookie參數之domain
setcookie函數的第五個參數domain表示cookie的域名。默認情況下,cookie只能被設置為當前域名或者其子域名中的腳本訪問。例如我們希望設置一個一個名為username的cookie,其值為Bob且只能在example.com及其子域名中使用:
setcookie('username', 'Bob', time() + 60 * 60, '/', 'example.com');
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一小時內有效,且可以在example.com及其子域名中的腳本訪問。
七、setcookie參數之secure
setcookie函數的第六個參數secure為true表示cookie只能在HTTPS連接上發送。這種情況下,如果當前連接不是HTTPS連接,瀏覽器將拒絕接受該cookie。例如我們希望設置一個一個名為username的cookie,其值為Bob且只能在HTTPS連接中使用:
setcookie('username', 'Bob', time() + 60 * 60, '/', 'example.com', true);
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一小時內有效,且只在HTTPS連接中的腳本中使用。
八、setcookie參數之httponly
setcookie函數的第七個參數httponly為true表示cookie只能用於HTTP傳輸,不能用於JavaScript。這種情況下,許多常見的XSS攻擊就無法進行,提高了網站的安全性。例如我們希望設置一個一個名為username的cookie,其值為Bob並且只能在服務器端訪問:
setcookie('username', 'Bob', time() + 60 * 60, '/', 'example.com', true, true);
以上代碼將在客戶端保存一個名為username的cookie,其值為Bob。這個cookie將在一小時內有效,且只能在服務器端使用,不能用於JavaScript。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/235936.html