一、cookie介绍

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

1、设置Cookie

PHP用SetCookie函数来设置Cookie。

SetCookie函数定义了一个Cookie,并且把它附加在HTTP头的后面,SetCookie函数的原型如下: 
int SetCookie(string name, string value, int expire, string path, string domain, int secure);

参数说明:cookie名称,cookie值,过期时间(int),有效路径,有限域名,https传递才有效

注意:当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里Cookie由服务器传递给客户浏览器,在下一个页面浏览器才能把Cookie从客户的机器里取出传回服务器的原因。

使用例子:

普通使用:

setcookie('name','PHP淮北');

带失效时间的: 
setcookie('name','PHP淮北',time()+24*60*60);//1day

Cookie是面向路径的 ,默认存储在当前文件下,如果没有设置路径,不同文件下的cookie默认保存在不同文件夹下,如图:默认保存在mytest文件夹下

sss

2、接收和处理Cookie

用户端与服务端的web通信协议是http。而PHP通过http取得用户数据惯用的三种方法分别是:POST方法、GET方法还有Cookie。而PHP默认传递方法正是Cookie,也是最佳方法。

比如设置一个名为MyCookier的Cookie,PHP会自动从WEB服务器接收的HTTP头里把它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就是Cookie的值

3,删除Cookie

要删除一个已经存在的Cookie,有两个办法:

一是调用只带有name参数的SetCookie,那么名为这个name的Cookie将被从关系户机上删掉;例如:setcookie('name','');
另一个办法是设置Cookie的失效时间为time()或time()-1,那么这个Cookie在这个页面的浏览完之后就被删除了(其实是失效了)。 例如:setcookie('name','PHP淮北',time()-24*60*60); 
要注意的是,当一个Cookie被删除时,它的值在当前页在仍然有效的。 
使用Cookie的注意事项:

首先是必须在HTML文件的内容输出之前设置(Cookie是HTTP协议头的一部分,用于浏览器和服务器之间传递信息,所以必须在任何属于HTML文件本身的内容输出之前调用Cookie函数。
在PHP页面可以先使用

ob_start();//开启

code…..

ob_end_flush(); //刷新缓存

可以防止header提示错误);

不同的浏览器对Cookie的处理机制不一样
cookie限制是在客户端的。一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个。
当前设置的Cookie不是立即生效的,而是要等到下一个页面时才能看到

二、session介绍

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息,每一个网站访客都会被分配给一个唯一的标志符,即会话ID,它的存放形式无非两种:要么经过url传递,要么保存在客户端的Cookies里.当然,你也可以将Session保存到数据库里,这样会更安全,但效率方面会有所下降.url方式传递安全性肯定太差,PHP的会话机制是通过设置Cookie,在Cookie中保存会话id(Session ID),在服务器端会生成session文件,与用户进行关联,Web应用程序存储与这些Session相关的数据,并在各页面间进行传递.

PHP相关函数

在PHP中有关Session的函数比较多,不过我们最常用到的也就这么几个函数:

session_start():启用session机制,在需要用到session的程序文件的最开始调用它.

session_register():注册session变量

session_unregister(): 删除session变量(一个一个删除)

session_is_registered(): 判断session变量是否注册

session_distroy(): 销毁所有session变量(所有session变量销毁,包括文件)

需要注意下面几个方面:

1.函数session_start()必须在程序最开始执行,在其前面不能有任何输出内容,否则

就会出现“Warning:Cannot send session cookie - headers already

sent"类似这样的警告信息.

2.函数session_register()用于注册要保存在session中的相关变量,其用法如下:

<?php

$val = "session value";

session_register("val");

?>

val即为要注册的session变量名,在注册时一定不要加上"$"符号,只写其变量名称即可.

3.函数session_unregister()与上面函数用法完全相同,但功能相反,上面函数是注册

session变量,而其则是删除指定的session变量.

4.函数session_is_registered()用于判断session变量是否注册.

5.函数session_destroy()主要用于在系统注销和退出时,销毁所有的session变量,它没有参数,直接调用即可。

Session与PHP.ini的关系配置

1,session.save_handler = file

用于读取/回写session数据的方式,默认是files。它会让PHP的session管理函数使用指定的文本文件存储session数据

2,session.save_path = “/xammp/temp/”

指定保存session文件的目录,可以指定到别的目录,但是指定目录必须要有httpd守护进程属主(比如apache或www等)写权限,否则无法回存session数据。它还可以写成这样session.save_path = “N;/path” 其中N是整数。这样使得不是所有的session文件都保存在同一个目录中,而是分散在不同目录。这对于服务器处理大量session文件是很有帮助的。(注:目录需要自己手工创建)

3,session.auto_start = 0

如果启用该选项,用户的每次请求都会初始化session。不推荐使用,最好通过session_start()显示地初始化session。

转载于:https://www.cnblogs.com/qhorse/p/4701704.html

COOKIE和SESSION关系和区别相关推荐

  1. 详解COOKIE和SESSION关系和区别

    (转自个推,理解起来不难) 在技术面试中,经常被问到"说说Cookie和Session的区别",大家都知道,Session是存储在服务器端的,Cookie是存储在客户端的,然而如果 ...

  2. COOKIE与SESSION的真正区别在哪?

    COOKIE与SESSION比较 1.HTTP协议本身是无状态的. 我们上网都要靠HTTP协议传递信息.比如我们在浏览器里键入:www.sanyalanhua.com这个网址并回车,你会发现网址会变成 ...

  3. Cookie和Session简介与区别

    1.Cookie和Session简介与区别 在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 ...

  4. 前端页面——Cookie与Session有什么区别

    我们在实际生活中总会遇到这样的事情,我们一旦登录(首次输入用户名和密码)某个网站之后,当我们再次访问的时候(只要不关闭浏览器),无需再次登录.而当我们在这个网站浏览一段时间后,它会产生我们浏览的记录, ...

  5. 网络:.cookie和session原理及区别

    一.Cookie详解 (1)简介 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现.在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料 ...

  6. 什么是cookie?什么是session?cookie与session有什么区别

    cookie与session的由来: 网址的发展史:1.起初网站都没有保存用户功能的需求,所有用户访问返回的结果都是一样的.比如:新闻网页,博客网页,小说... (这些网页是不需要登录后才能访问的,每 ...

  7. 详解cookie和session之间的区别与联系

    Cookie 什么是 Cookie HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息) 每个HTTP请求都是完全独立的,服务端无法确认当前访 ...

  8. Cookie、Session 和 Token区别

    1 Cookie.Session 和 Token 都是用来做持久化处理的,目的就是让客户端和服务端相互认识.Http 请求默认是不持久的没有状态的,谁也不认识谁. 2 Cookie: 是存放在客户端的 ...

  9. 程序员过关斩将--cookie和session的关系其实很简单

    喜欢就点关注吧! 月高风下,下班路上.... 菜菜哥,告诉你一个秘密,但是不允许告诉任何人 这么秘密,你有男票了?~ 不是,昨天我偷偷去面试了,结果挂了 这不是好事吗,上天让公司留住你..... 好吧 ...

最新文章

  1. winform动态的文字效果
  2. Analysis Services基础知识——深入SQL Server 2008
  3. 在VC中 改变List列表中一行的颜色
  4. matchers依赖_定制Hamcrest Matchers
  5. python flask 上传下载 api_python – 使用Flask上传和下载文件
  6. 【腾讯Bugly干货分享】Android内存优化总结实践
  7. python 数据结构与算法
  8. 最流行的自动化测试工具,总有一款适合你
  9. 支持向量机原理(四)SMO算法原理
  10. 【Codeforces Round #546 (Div. 2) E】Nastya Hasn't Written a Legend【线段树】
  11. 平板电脑怎么使用计算机,平板电脑怎么用
  12. 跨平台 H264 H265/HEVC 编解码 硬件加速
  13. git 拉取最新代码覆盖本地
  14. 智能制造怎么精益生产?详解:精益生产与智能制造的融合
  15. java 量化指标_量化投资学习笔记13——各种指标的绘图、计算及交易策略
  16. adc0804c语言程序,ADC0804芯片在模数转换电路中的应用研究
  17. 基于单片机的智能洗手器系统设计(#0460)
  18. 大数据NiFi(七):NiFi集群页面管理节点操作
  19. m1虚拟机运行Linux,虚拟机Parallels发布新技术预览版,M1 Mac能运行Win 10了
  20. 谷歌验证码 reCaptcha V2 图像识别开发接口

热门文章

  1. mysql和hbase优缺点_hbase优缺点
  2. php读取binlog,PHP解析Mysql Binlog
  3. 信号与系统 2022 春季学期第一次作业-作业题目准备
  4. 第十六届智能车竞赛安徽赛区成绩与奖项公示
  5. DH1766线性三路可编程直流电源
  6. 为什么我们的信标信号被干扰?
  7. 315MHz 高频射频发射模块
  8. 未解决计算机主机与打印机,电脑无法与打印机连接 计算机网考题目2(12)
  9. python怎么读excelsheet_python3 excle(python怎么读写excel文件)
  10. linux和windows测评,Windows Server 2016 与 Linux同台PK