zoukankan      html  css  js  c++  java
  • 会话控制:session与cookie

      我们在浏览网站时,访问的每一个web页面都需要使用“http协议”实现。而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态。当一个用户请求一个页面以后,再请求同一个网站上的另外页面时,HTTP协议不能告诉我们这两个请求时来自同一个用户,会被当做独立的请求,而并不会将这两次访问联系再一起。

      会话控制的思想就是允许服务器跟踪同一个客户端做出的连续请求。亦可通过会话控制在多个页面之间共享数据。

      cookie是一种由服务器发送到客户端的片段信息,存储在客户端浏览器的内存或者硬盘上,在客户对该服务的请求中发回它。PHP透明地支持HTTPCookie。

      session(中文名“会话”)技术与cookie相似,都是用来存储使用者地相关资料。但最大不同之处在于Cookie是将数据存放于客户端计算机之中,而session则是将数据存放于服务器系统之下。

    1.session
    (1)session存储在服务器的
    (2)session每个人存一份
    (3)session有默认的过期时间
    (4)session里面可以存储任意类型的数据,包括数组
    安全,对服务造成压力
    用法:
    1.当一个页面需要使用session的时候,需要在页面顶部加session_start();
    2.操作session
     赋值  $_SEESION["uid"] = "";
     取值  $_SESSINO["uid"]

    注销变量与销毁session

    bool session_destroy(void)           //销毁和当前session有关的所有资料

      相对于session_start()函数(创建session文件),该函数用来关闭session的运作(删除session文件),如果成功则传回TRUE,销毁session资料失败则返回false。但该函数并不会释放和当前session相关的变量,也不会删除保存在客户端cookie中的session ID。可以实用unset()函数来释放在session中注册的单个变量:

    unset($SESSION["username"]);

    unset($SESSION["password"]);

      不要使用unset($_SESSION)删除整个$_SESSION数组,这样将不能再通过$_SESSION超全局数组注册变量了。但如果想把某个用户再Session中注册的所有变量都删除,可以直接将数组变量$_session赋上一个空数组:

    $_SESSION=array();                //将某个用户在Session中注册的变量全部清除

    注意:使用"$_SESSION=array()" 清空$_SESSION数组的同时,也将这个用户在服务器端对应的Session文件内容清空。而使用session_destroy()时,则是将这个用户在服务器端对应的Session文件删除。

    2.cookie
    (1)cookie存储在客户端的
    (2)cookie每人存一份
    (3)cookie没有默认过期时间
    (4)cookie只能存储字符串
    不安全,不会对服务器造成压力
    用法:
    1.操作cookie
     赋值:setcookie(key,value)
        取值:$_COOKIE["uid"]

  • 相关阅读:
    10月27日PHP加载类、设计模式(单例模式和工厂模式)、面向对象的六大原则
    数据解析2:JSON解析(2)
    数据解析2:JSON解析(1)
    数据解析1:XML解析(3)
    数据解析1:XML解析(2)
    数据解析1:XML解析(1)
    设计模式4:装饰模式(1)
    设计模式3:模板模式(1)
    设计模式2:工程模式(1)
    设计模式1:单例模式(1)
  • 原文地址:https://www.cnblogs.com/bujianchenxi/p/6050158.html
Copyright © 2011-2022 走看看