今天我們來聊一聊關于php cookie和javascript的知識。在網頁設計中,為了方便用戶使用,我們經常需要記錄用戶的信息,這時候就可以用到cookie了。
cookie是一種小型文本文件,由服務器發給客戶端的,保存在用戶的計算機硬盤上。它可以用于記錄用戶的登錄狀態、購物車中的商品、瀏覽過的網頁等信息。
下面是一個簡單的php cookie示例:
<?php
//設置cookie,有效期為1小時
setcookie("username", "張三", time()+3600);
//獲取cookie
echo $_COOKIE['username'];
?>
上面的代碼中,我們通過setcookie函數設置了一個名為“username”的cookie,它的值為“張三”,有效期為1小時。接著我們通過$_COOKIE['username']獲取了這個cookie的值,并輸出到了頁面上。
為了更好地管理cookie,我們可以將其封裝成一個函數:
//設置cookie
function setCookie($name, $value, $expire = 0, $path = '/', $domain = ''){
setcookie($name, $value, $expire, $path, $domain);
$_COOKIE[$name] = $value;
}
//獲取cookie
function getCookie($name){
return isset($_COOKIE[$name]) ? $_COOKIE[$name] : '';
}
接下來,我們來聊一聊javascript中的cookie的使用。通過javascript,我們可以使用document.cookie來操作cookie,下面是一個示例:
//設置cookie
document.cookie = "username=張三;expires=" + new Date(new Date().getTime() + 1000 * 60 * 60).toGMTString();
//獲取cookie
document.cookie.split('; ').map(item => item.split('=')).reduce((acc, cur) => Object.assign(acc, {[cur[0]]: cur[1]}), {})['username'];
上面的代碼中,我們通過document.cookie.set方法設置了一個名為“username”的cookie,它的值為“張三”,有效期為1小時。接著我們通過document.cookie.get方法獲取了這個cookie的值,并將其解析成一個對象。
除了使用cookie記錄用戶信息外,我們還可以使用session來記錄用戶信息,在php中,我們可以通過session_start()函數來開啟session,在javascript中,我們可以使用window.sessionStorage和window.localStorage來保存數據。下面是一個php session示例:
<?php
//開啟session
session_start();
//設置session
$_SESSION['username'] = '張三';
//獲取session
echo $_SESSION['username'];
?>
上面的代碼中,我們通過session_start()函數開啟了session,接著我們通過$_SESSION['username']設置了一個名為“username”的session,它的值為“張三”。最后我們通過$_SESSION['username']獲取了這個session的值,并輸出到了頁面上。
最后,我們來一起總結一下cookie和session的區別。cookie保存在用戶的計算機硬盤上,session保存在服務器上;cookie可以跨域訪問,session不能跨域訪問;cookie的安全性相對較低,session的安全性相對較高。