为什么使用会话技术?
    “HTTP协议”是无状态协议
    HTTP协议不能告诉我们多请求是否是来自同一个人 会话控制
    会话控制的思想就是允许服务器跟踪同一个客户端做出的连续请求

    会话跟踪的方式
    HTTP是无状态的协议,所以不能维护两个事物间的状态。但一个用户在请求一个页面以后再请求另一个页面时,需要让服务器知道这是一个用户。
    总共有3种数据传递方式。
    超链接或者header()函数等重定向方式
    使用Cookie将用户的信息状态,存放在客户端的计算机中。
    使用Session将用户的信息状态,存放在服务器之中。

    Cookie概述
    cookie是在http协议下,服务器或脚本可以维护客户端信息的一种方式。
    Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上。常用于保存用户名,密码,个性化设置,个人偏好记录等。当用户访问服务器时,服务器可以设置和访问cookie的信息。
    cookie保存在客户端,通常是IE或Firefox浏览器的cookie临时文件夹中,可以手动删除。注意:如果浏览器上cookie太多,超过了系统所允许范围,浏览器也会自动对它进行删除

    设置Cookie
    设置Cookie 语法:bool setcookie(string name,[string value,[int expire,[string path,[string domain,[int secure]]]]]); 本cookie函数可以有6个属性,常用的有3个参数
    image.png

    setcookie参数解释
    image.png

    读取cookie
    如果Cookie设置成功,客户端就拥有了Cookie文件,用来保存Web服务器为其设置的用户信息。 在PHP中读取Cookie信息很简单,使用超全局数组$_COOKIE[‘cookie名’]即可获取cookie中的内容
    image.png
    image.png
    Cookie的数组形态应用
    数组也可以利用多维数组的形式,将多个内容值存储在相同Cookie名称标识符下。
    image.png


    删除Cookie
    有2种方式删除Cookie
    1.省略setcookie()函数的所有参数列
    2.设置cookie为已过期
    image.png

    Session概述
    Session和Cookie相似,都是用来储存使用者的相关资料。但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下。

    cookie和session在php中的使用区别:
    cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别。
    cookie存放在客户端浏览器中, session保存在服务器上。
    它们之间的联系是session ID 一般保存在cookie中,或者放在URL上。
    禁用cookie的方法:
    点击IE中的“工具”—“Internet选项”,在弹出的对话框里点击“安全”—“自定义级别”项,将“允许每个对话COOKIE”设为禁用.

    配置Session
    php.ini文件和Session有关的几个常用配置选项
    session.auto_start = 0 ; 在请求启动时初始化session
    session.cache_expire = 180 ; 设置缓存中的会话文档在 n 分钟后过时
    session.cookie_lifetime = 0 ; 设置按秒记的cookie的保存时间, 相当于设置Session的过期时间,为0时表示直到浏览器被重启
    session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。但启用该选项也有一些限制,如果确实启用了
    session.auto_start,则不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象。
    session.cookie_path = / ; cookie的有效路径
    session.cookie_domain = ; cookie的有效域
    session.name = PHPSESSID; 用在cookie里的session的名字
    session.save_handler = files ; 用于保存/取回数据的控制方式
    session.save_path = /tmp ; 在 save_handler 设为文件时传给控制器的参数, 这是数据文件将保存的路径. session.use_cookies = 1 ; 是否使用cookies


    Session的声明与使用
    Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。 session_start()函数的语法格式如下
    Bool session_start(void) 注意:
    session_start()函数之前不能有任何输出 Session以数组的形式使用 如:$_SESSION[‘session名’]
    image.png