Cookie与session 用户登录

来源:互联网 发布:电话网络怎么网上缴费 编辑:程序博客网 时间:2024/06/06 02:56

Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

1.cookie的设置

/*PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。*/$value = time();//设置一个名为test的Cookiesetcookie("test",$value);

2.cookie的删除

//删除test的cookie值setcookie('test','',time()-1);

session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。

1.session的设置

//设置name的session值为jobssession_start();$_SESSION['name'] = 'jobs';

2.session的删除

//删除name的session值unset($_SESSION['name']);

使用session来存储用户登录信息

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