会话控制:Cookie和session

HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本、图形、视频和所有其他数据所有的规则。HTTP是一种无状态的协议,说明每次请求的处理都与之前或之后的请求无关。虽然这种简化实现对于HTTP的普及做出了卓越的贡献,但对于希望创建复杂的Web应用程序的开发人员来说,这点有点困扰。为了解决这个问题,出现了一种在客户端机器上存储少量信息(cookie)。

由于cookie大小限制、数量及其他原因,开发人员又提出了一种解决方案:session会话处理。

 

一.Cookie的应用

  //1 创建一个Cookie
  //Cookie是在你的客户机存的一个小文件,这个文件包含你登录的信息
  //第一个参数表示Cookie的名,第二个表示Cookie的值,第三个参数过期时间
  setcookie('name','lee',time()+(7*24*60*60));

  //2 读取本机的Cookie,采用一个超级全局变量$_COOKIE
  //有个特性,setcookie并不是即使生成,它会慢一拍,意思就是第一次刷新只是覆盖了原来的,获取的还是原来的,但用的时候对我们没影响
  echo $_COOKIE['name'];
  
  //3 用变量检测判断Cookie是否存在
  echo isset($_COOKIE['name']);

  //4 删除Cookie
  setcookie('name',''); //将值设置为空即可
  setcookie('name','lee',time()-1); //通过过期时间也可以
   
  //5 Cookie的限制
  //1、必须在HTML文件的内容输出之前设置;
  //2、不同的浏览器对Cookie的处理不一致,且有时会出现错误的结果。
  //3、限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。

Cookie登录例子:如果username和指定的姓名相同就登录

demo1:

<form method="post" action='demo2.php'>
姓名:<input type='text' name='username' />
<input type='submit' name='send' value='提交' />
</form>

demo2.php:

  //例子:如果username和指定的姓名相同,那么就生成一个cookie
  //完成登录
  if (isset($_POST['username']) && $_POST['username']=='dangxm') {
      //如果成功,生成一个Cookie,再跳转
      setcookie('name','dangxm');
      header('Location:demo3.php');
  }else {
      header('Location:demo.php');
  }

demo3.php:

<?php
  if (isset($_COOKIE['name'])){
      echo '欢迎光临:'.$_COOKIE['name'];
  }else {
      echo '非法登录';
  }
  
?>

二.Session会话处理

  //Session会话处理,存在服务端,一般存放1440秒
  //如果没有进行任何操作,会自动销毁,可以通过php.ini来修改默认时间
  //即时性的,不会像Cookie慢半拍
  
  //1 开启会话,只要用到,必须开启,一般放在文件开头
  session_start();
  //2 创建session
  $_SESSION['name']='lee';
  //3 取值
  echo $_SESSION['name'];
  //4 判断是否存在
  if(isset($_SESSION['name'])){
      echo $_SESSION;
  }else {
      echo "session不存在";
  }
  //5 删除session:unset();
  unset($_SESSION['name']);
  session_destroy();//销毁所有session,一般放在session_start();后用来销毁之前创建的所有session

Cookie使用于会员登录,购物车
因为不占有服务器资源,所以会员特别多,购物车特别多,就用Cookie
 
session一般用于后台管理登录,人少
安全性,一段时间不操作会自动登录

 

posted @ 2016-12-09 20:01  党兴明  阅读(163)  评论(0编辑  收藏  举报