基础9 会话控制

一  Cookie:

服务端发送,保存在客户端的识别信息。

只有两个函数:

1 setcookie(name,value,expire,path,domain,secure) 发送cookie
name: 必须 cookie的名称
value: 必需 cookie的值
expire:必需 cookie的有效期
path: 可选 cookie有效的服务器路径 设置成 '/'时,cookie对整个域名有效 设置成'/demo/'时,cookie仅仅对域名中/demo/目录及其子目录有效。默认值是 设置cookie时的当前目录
domain:可选 cookie有效的域名/子域名
secure:可选 Cookie 是否仅仅通过安全的 HTTPS 连接传给客户端 布尔类型
2 setrawcookie()    发送未经 URL 编码的 cookie  这个不常用

 Cookie 值同样也存在于 $_REQUEST

设置成 '/' 时,Cookie 对整个域名 domain 有效。 如果设置成 '/foo/', Cookie 仅仅对 domain/foo/ 目录及其子目录有效(比如 /foo/bar/)。 默认值是设置 Cookie 时的当前目录。 

 

 Cookie是用来将网站的资料记录在客户端的技术,这种技术让Web服务器能将一些资料,存放于客户端(用户的电脑)之中。

比如:当通过验证,成功登录网站后,在”网页一“的PHP脚本中,会把这个用户有关的信息,设置到客户端电脑的Cookie中,当再次访问同一个网站中的其他脚本时,

就会自动携带Cookie中的数据一起访问,在服务器中的每个脚本中都可以接受Cookie中的数据,不需要每访问一个页面就重新输入一次登录者的信息。

 

1)普通方式设置cookie

<?php
//uniqid()函数:生成一个唯一ID:
//获取一个带前缀、基于当前时间微秒数的唯一ID。
$id = uniqid(rand(100,999).'_');

//1 设置cookie
setcookie('id',$id,time()+3600);//失效时间1小时

//2 获取cookie
var_dump($_COOKIE);

//3 删除cookie
setcookie('id','',time()-100);

2)用多维数组设置cookie

//用到的变量
$id = uniqid(rand(100,999).'_');
$name = '张飞';
$sex = '男';

//1 用多维数组设置cookie
setcookie('group[id]',$id,time()+120);
setcookie('group[name]',$name,time()+120);
setcookie('group[sex]',$sex,time()+120);

//2 获取cookie
var_dump($_COOKIE);

//3 删除cookie
//3-1 一条一条的删除
setcookie('group[name]','张飞',time()-120);
setcookie('group[sex]','男',time()-120);
setcookie('group[age]','55',time()-120);
//3-2 循环删除
foreach ($_COOKIE['group'] as $key => $value) {
    setcookie("group[{$key}]",'',time()-100);
}

 

二  session

 

1 开启session  设置session值

//session_start(); 作用1 开启session       一个客户到超市买东西,办理会员卡
//session_start(); 作用2 打开已经存在的会话  以后再到超市买东西 出示已经办理过的会员卡 就可以买东西

//1开启session
session_start();

//2 使用session存储数据
$_SESSION['name'] = '刘备';
$_SESSION['sex'] = '男';
$_SESSION['age'] = 60;

//session_id 是自动生成的 不需要自己创建
//session 技术是需要cookie支持的

 

2  读取session

<?php
//1 打开已经存在的会话
//根据客户端传来的session_id 把它对应的数据 读取到$_SESSION这个变量里面
session_start();

//2 我们就可以打印输出了 var_dump($_SESSION); //session服务器端文件保存地址:G:\phpstudy_pro\Extensions\tmp
//在PHP.ini配置文件中可以设置存放的路径 搜索:session.save_paht

 

3  删除session

<?php
//1 需要先打开会话 要不然程序根本不知道需要销毁哪个会话
session_start();

//2 销毁session 
session_unset();//会释放当前会话注册的所有会话变量  服务器端文件内容被清空  但是文件还在

//3 销毁session 并删除服务端保存session的文件
session_destroy();

//4 销毁保存在客户端cookie中的session_id值
setcookie(session_name(),'',time()-100,'/');//本节重点

//我们设置session的时候没有传递第四个参数,它默认用的是PHP.ini配置文件中的 '/' 根目录,我们删除的时候也需要和PHP.ini中保持一致
//获这我们在设置的时候,就把第四个参数传递上。 //使用setcookie删除cookie的时候,需要与当初设置cookie的时候参数一致

 

简单实战:

基于Cookie的登录逻辑:https://www.cnblogs.com/fuyunlin/p/13954385.html

基于Session的登录逻辑:https://www.cnblogs.com/fuyunlin/p/13954405.html

 

posted @ 2020-10-23 22:32  棉花糖88  阅读(63)  评论(0)    收藏  举报