基础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

浙公网安备 33010602011771号