PHP學習筆記:使用session來存儲用戶的登錄信息


session可以用來存儲多種類型的數據,因此具有很多的用途,常用來存儲用戶的登錄信息,購物車數據,或者一些臨時使用的暫存數據等。

用戶在登錄成功以后,通常可以將用戶的信息存儲在session中,一般的會單獨的將一些重要的字段單獨存儲,然后所有的用戶信息獨立存儲。

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;

一般來說,登錄信息既可以存儲在sessioin中,也可以存儲在cookie中,他們之間的差別在於session可以方便的存取多種數據類型,而cookie只支持字符串類型,同時對於一些安全性比較高的數據,cookie需要進行格式化與加密存儲,而session存儲在服務端則安全性較高。

范本:

<?php
session_start();
//假設用戶登錄成功獲得了以下用戶數據
$userinfo = array(
    'uid'  => 10000,
    'name'  => 'spark',
    'email' => 'spark@imooc.com',
    '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);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM