PHP学习笔记:使用session来存储用户的登录信息

来源:互联网 发布:金山数据恢复大师下载 编辑:程序博客网 时间:2024/06/05 05:52

PHP学习笔记:使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等。用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。
$_SESSION['uid'] = $userinfo['uid'];$_SESSION['userinfo'] = $userinfo;一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。

PHP代码

<?phpsession_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);