session与cookie的区别与基本用法
一.在分析session和cookie的基本用法之前,先了解一下两者之间的比较:
- session:存储用户访问的全局唯一变量,存储在服务器上的php指定的目录(session_dir)[个人主机则存储在php/tmp文件夹中]进行存放;
- cookie用来存储连续访问一个页面时所使用,存储在客户端,对于cookie是存储在用户WIN/temp下;
- session和cookie都可以通过时间设置过期时间,不同的是session过期时间是通过cookie进行设置的(setcookie()函数);
- session信息可以通过cookie方式进行存储(即将session信息存储到客户端,多用于游客状态下添加购物车),默认采用sessionID的命名方式进行存储.
二.session的简单使用
1 <?php 2 //建立session.php文件进行session处理 3 //开启会话 ,存储数据 4 session_start(); 5 $_SESSION['user']='zhangsan'; 6 ?>
1 <?php 2 //前台showsession.php文件session输出 3 session_start(); 4 var_dump($_SESSION['user']); 5 unset($_SESSION['user']);//销毁会话之前手动释放session,即先释放后销毁 6 session_destroy(); //销毁会话
先执行session.php文件存储一个session信息,然后执行showsession.php,如果想要设置session一个过期时间,需要在session.php文件添加一行代码:
setcookie(session_name(),session_id(),time()+3600); //设置过期时间为一个小时
PS:session本质是存储信息到服务器中,每次使用都需要先session_start()开启session回话,如果要删除session,第一步是释放->unset(),第二步才是销毁->session_destroy().另外使用session可以防止表单重复验证.
三.cookie的简单使用
cookie常用于识别用户,是一种服务器留在用户计算机(客户端)上的包含信息的小文件,cookie只有一个函数->setcookie()
1 <? 2 //setcookie(name, value, expire, path, domain); 3 //key:user;value:zhansan;过期时间:10秒 4 setcookie('user','zhangsan', time()+10); 5 6 //打印输出 7 var_dump($_COOKIE); 8 ?>
最后,给大家一个使用cookie实现的小功能,不经过数据库直接进行判断登录的代码:
1 <?php 2 //登录逻辑 3 if(isset($_POST['user'])){ 4 $user=$_POST['user']; 5 $pwd=$_POST['pwd']; 6 if($user!=NULL&&$pwd!=NULL){ 7 //登陆成功 8 $loginCode = md5($user.$pwd); 9 setcookie('loginCode',$loginCode, time()+100);//证明已经登录 10 setcookie('user',$user, time()+100);//自动登录实时显示用户名称 11 echo '欢迎'.$user.'登陆成功';exit; 12 } else { 13 //用户名和密码不能为空 14 echo '用户和密码不能为空'; 15 exit; 16 } 17 } 18 //自动登录判断 : 通过设置过期时间进行判断 19 if(isset($_COOKIE['loginCode'])){ 20 echo '欢迎'.$_COOKIE['user'].'自动登陆成功'; 21 exit(); 22 } 23 ?> 24 <html> 25 <head> 26 <meta charset="UTF-8"> 27 <title>Document</title> 28 </head> 29 <body> 30 <form action="login.php" method="post"> 31 用户名: 32 <input type="text" name="user"> 33 密码: 34 <input type="password" name="pwd"> 35 <input type="submit" value="登录"> 36 </form> 37 </body> 38 </html>
本次cookie和session相关信息的学习就到这儿了~回见,大家@loveless1210
用最好的语言,编织最美的世界