使用session來存儲用戶的登錄信息以及解決cookie的失效問題

用session存儲用戶的登錄信息 

<?php
session_start();
//假設用戶登錄成功獲得了以下用戶數據
$userinfo = array(
    'uid'  => 10000,
    'name' => 'spark',
    'email' => '[email protected]',
    'sex'  => 'man',
    'age'  => '18'
);
header("content-type:text/html; charset=utf-8");

/* 將用戶信息保存到session中 */
$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['name'] = $userinfo['name'];
$_SESSION['userinfo'] = $userinfo;

//* 將用戶數據保存到cookie中的一個簡單方法 */
$secureKey = 'imooc'; //加密密鑰
$str = serialize($userinfo); //將用戶信息序列化
//用戶信息加密前
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));
//用戶信息加密後
//將加密後的用戶數據存儲到cookie中
setcookie('userinfo', $str);

//當需要使用時進行解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo "解密後的用戶信息:<br>";
print_r($uinfo);

解決cookie的失效問題

cookie失效主要有兩種原因,一是用戶關閉了瀏覽器對cookie的支持,第二是瀏覽器不支持cookie技術,所以當網站使用了cookie,也必須使用cookie才能運行時,可以檢查當前瀏覽器是否支持cookie或開啓cookie後再根據檢查的情況運行下一步的代碼。

(1)使用JavaScript檢查瀏覽器是否開啓cookie支持

<script type="text/html">
//檢查瀏覽器是否開啓cookie
if(window.navigator.cookieEnabled == false){
    
    alert("請打開瀏覽器的cookie支持再瀏覽本頁!");

    //導航至其他頁面

    window.navigate('notcookie.html);
}
</script>

(2)使用php檢查瀏覽器是否開啓cookie支持

<?php
//註冊一個cookie值
setcookie("test","data");
//讀取已經設置的cookie值
if($_COOKIE["test"]!="data"){
    //如果不能讀取或者讀取的cookie值與設置的值不同,顯示提示信息,中斷腳本
    echo "請打開瀏覽器的cookie支持,再瀏覽本頁";
    exit();
}
?>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章