【PHP】COOKIE和SESSION的使用以及区别

PHPer 2023-07-17 170 0 0

一、COOKIE

1. 认识cookie

Cookie英文是曲奇饼、小甜品的意思,在web应用中,也类似于程序大餐中的小甜品,在 Internet 中,Cookie 实际上是指小量信息,是由 Web 服务器创建的,将信息存储在用户计算机上的文件,主要作用是记录web应用中用户的基本信息,也可以叫做浏览器缓存或Cookies。

web应用都是基于http协议进行网络交互,而http协议对每个web页面提交的信息不会进行记录,而很多网站都有会员功能,如果每次跳转页面的时候都重新提交一次会员信息,那这个工作任务就太繁琐,因此有了Cookie的诞生。web应用程序可以在操作时,由服务器端代码生成一个Cookie信息保存在客户端的浏览器中,生成一个很小的文件,此时的文件存在RAM运行内存中,如果用户关闭浏览器会自动删除Cookie信息;如果程序生成一个带有时间设定的cookie,那么cookie文件将存在物理内存中,下次访问同一个web应用时,在设置时间范围内,web应用仍能获取到cookie信息。

2. 使用cookie

(1)创建Cookie值

// 函数设置Cookie

Setcookie("标识键值","Cookie值","有效时间","有效作用域 / 表示当前网站下好使");

// 赋值设置Cookie

$_COOKIE['标识键值'] = "Cookie值";

(2)修改Cookie值

// 函数设置Cookie

Setcookie("标识键值","Cookie新值","新有效时间","新的有效作用域");

// 赋值设置Cookie

$_COOKIE['标识键值'] = "Cookie新值";

(3)删除Cookie值

// 函数设置Cookie

Setcookie("标识键值","空值",time()-1);

(4)查看Cookie值

// 查看所有Cookie值

var_dump($_COOKIE);

// 查看具体的Cookie值

var_dump($_COOKIE['键值']);

(5)使用举例

<?php

// 增加 Cookie

// 设置Cookie函数法 setCookie();

setCookie("test1","test1");

// 设置Cookie赋值法

$_COOKIE['test2'] = "test2";

// 修改Cookie

// 修改Cookie setCookie()

setCookie("test1","test1->test3");

// 修改Cookie赋值法

$_COOKIE["test2"] = "test2->test4";

// 查询所有Cookie值

var_dump($_COOKIE);

// 查询键值为test2的值

var_dump($_COOKIE['test2']);

// 删除键值为test1的值

setCookie("test1","",time()-1);

// 设置test2值为空

$_COOKIE['test2'] = "";

var_dump($_COOKIE);

3. Cookie的缺点

(1)Cookie相对不安全,容易被盗取,泄露个人隐私;

(2)Cookie必须依赖于客户端,客户端(浏览器)可以关闭Cookie存储功能,如果客户端关闭Cookie,则web应用无法存储Cookie值在客户端本地。

4. 注意事项

(1)使用setCookie设置或修改cookie值后,在第一次刷新页面时打印Cookie不会有结果,只在本地生成Cookie文件,第二次刷新的时候才可以获取新增或修改的值。如果使用$_COOKIE新增值或者修改值,在修改后第一次请求就可以获取到结果。

(2)使用setCookie删除Cookie值时,第一次删除只是删除了文件,在当前代码中打印Cookie数据仍然可以打印出Cookie值,刷新页面,重新访问后,对应的Cookie值已被删除。

!所有只要是setCookie函数作用的值,第一次访问不会产生对应的反应,第二次访问会产生效果。而$_COOKIE操作的数据会在第一次访问直接产生效果。

二、SESSION

1. 认识session

Session概念:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。[copy百度]

Session机制:session内容一般以文件的形式存储于服务器中,而本地浏览器会存储一个与服务器中session文件对应的Cookie值,Cookie存储的是键值为“PHPSESSID”的Seeion_id值,用户在访问web应用时,每次跳转发生http请求时,会自动把这个存储session_id的Cookie值发送过去,因此web应用的所有页面都可以获取到这个SESSION_ID值,也就可以通过session_id获取服务器中存储的session值,当用户关闭浏览器后,cookie存储的session_id自动清除,一般服务器存储的session文件也会在30分钟后自动清除。【大白话说明^O^】...

立即注册

更新于:2023-07-17 23:29:28
    您需要登录后才可以评论。 立即注册
    相关内容

    php知识点学习整理

    PHP preg_quote() 函数

    PHP str_ireplace() 函数

    查看php位置

    php7.4 查看版本

    PHP提示 cURL error 60: SSL certificate problem: unable to get loca...

    php过滤表单输入的emoji表情

    PHP 中英文混排截取字符串 (用php自带的函数,简单效果又好)

    PHP的源代码BUG整理

    php如何查看扩展是否开启

    linux下安装php的Exif扩展笔记!(用LNMP一键安装脚本安装的php)

    configure: error: Cannot find ldap.h 解决方法

    一个PHP针对数字的加密解密类

    php的Memcache addServer 后set失败

    PHP8 报错Required parameter $r follows optional parameter

    PHP向js传数组

    phpmyadmin问题整理

    phpmyadmin解决Failed to set session cookie. Maybe you are using HTTP...

    phpmyadmin 登录报错 mysqli_real_connect(): (HY000/2002):

    PhpMyAdmin 配置文件现在需要一个短语密码的解决方法

    PHP与APP

    PHP是否可以应用于App开发

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享