PHP session and cookie

cookie 和 session 主要不同的是存储机制。cookie 是一个web页面到下一个页面的数据传输方法,存储在客户端;session 是让数据在页面中持续有效的方法,存储在服务器端

1.什么是cookie

Cookie 是在HTTP协议下,通过服务器或或脚本语言可以维护客户浏览器上信息的一种方式,存在与http请求头中。
cookie 简单的说,是web服务器暂时存储在用户硬盘上的一个文本文件。cookie文本文件命令格式:
用户名@网址[数字].txt

2.创建cookie

在PHP中通过 setcookie() 创建cookie。
cookie 是 HTTP 头标的组成部分,而投标必须在其他内容发送以前发送,因此在 setcookie() 之前不能有任何内容的输出。

cookie 语法格式如下:
bool cookie( name [,value [,expire [,path [,domain [,secure]]]]]) 
expire  : 有效时间
path : cookie 在服务器端的有效路径
domain : cookie 有效域名
secure : cookie 是否仅通过安全的https,1,只在https上有效, 0,默认值都有效

3.读取Cookie

$_COOKIE[] 超全局数组读取浏览器端的Cookie值

4.删除Cookie

setcookie( "name","",time()-1 ); //值为空,有效期小于当前时间

5.cookie 生命周期

如果不设置失效时间,为会话Cookie,保存在内存中,关闭浏览器,Cookie失效。
设置了失效时间,保存在硬盘中,关闭浏览器依然有效,知道有效期超时。
浏览器最多允许存储300个Cookie文件,每个文件最大容量为4KB ,每个域名最多支持20个Cookie,达到限制,浏览器自动随机删除Cookie文件

SESSION

1.什么是SESSION

在计算机术语中,session 是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此。Session实际上是一个特定的时间概念。
Session 工作原理: 启动一个session会话时,会生成一个随机而且唯一的session_id ,也就是session 的文件名,session_id 存储在服务器的内存中。关闭页面时 id 自动注销。

2.创建会话

2.1启动会话

  1. session_start() 函数
bool session_start(void); // 使用函数之前浏览器不能有任何内容的输出
  1. session_register()函数
    session_register() , 函数需要 php.ini 中将 register_golbals 设置为on ; 使用session_register() 时不需要调用session_start(),PHP在创建了变量后隐含的调用了session_start()。

2.2 注册会话

session_start();
$_SESSION['name'] = 'yuzhangsir';

2.3 使用会话

if(!empty($_SESSION['name'])){
    $name = $_SESSION['name'];
}

2.4 删除会话

unset( $_SESSION['name'] ) ; //删除单个会话,必须加元素,否则一次注销整个$_SESSION 会禁止整个会话功能,没有办法恢复,用户也没有办法再注册
$_SESSION = array(); // 删除所有的会话变量
session_destroy() ; // 结束当前会话

3.SESSION 设置时间

3.1客户端没有禁用Cookie

session_start();
$time = 36800 ;
setcookie( session_name(), session_id(), time()+$time , '/');
$_SESSION['name'] = 'yuzhangsir';

3.2 客户端禁用了Cookie

1.提醒用户必须打开Cookie ;
2. php.ini 中,session.use_trans_sid = 1 , 或者编译时打开 -enable-trans-sid 选项;
3. 文件或者数据中存储 session_id

4.Session 临时文件

在服务器中,如果将所有用户的Session 都保存在临时目录中,会降低服务器的安全性和效率,session_save_path() ,可以设置存储路径、

$path = './tmp/';
session_save_path($path);
session_start();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值