PHP自学与交流中心QQ群:153404408,详解COOKIE设置与使用技术

技术交流的同学欢迎加入

PHP自学与交流中心QQ群:153404408,详解COOKIE设置与使用技术

PHP自学与交流中心QQ群:153404408

请提供需要改写的句子呀,你没有给出具体的内容呢。

COOKIE介绍

cookie 常被用于识别用户。它是服务器留在用户计算机里的小文件。每当相同的计算机通过浏览器去请求页面时,就会同时发送这个 cookie。借助 PHP,您可以创建并获取 cookie 的值。

1、设置Cookie

PHP用SetCookie函数来设置Cookie。

SetCookie函数定义了一个 Cookie ,接着把它附加在 HTTP 头的后面 。SetCookie 函数的原型情况如下 :

设置 Cookie 的函数名为 SetCookie,它接受六个参数,分别是字符串类型的 name、value,整数类型的 expire,以及字符串类型的 path、domain 和 secure。通过这些参数来设置 Cookie 的相关属性。

参数说明:包括 cookie 的名称,还有 cookie 的值,以及过期时间(以整数形式表示),同时有有效路径,有限域名,并且只有在 https 传递时才有效。

当前设置的 Cookie 不会立即生效。要等到下一个页面才可以看到。这是因为在设置的这个页面中,Cookie 是由服务器传递给客户浏览器的。而下一个页面,浏览器才能从客户的机器里取出 Cookie 并传回服务器。

使用例子:

普通使用:

设置名为“name”的 cookie,其值为“PHP”。

带失效时间的:

设置名为“name”的 cookie,其值为“PHP”,过期时间为当前时间加上 24 小时(24*60*60 秒)。

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

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的注意事项:

首先,Cookie 是 HTTP 协议头的一部分,用于浏览器和服务器之间传递信息。其次,必须在任何属于 HTML 文件本身的内容输出之前调用 Cookie 函数,也就是要在 HTML 文件的内容输出之前进行设置。

在PHP页面可以先使用

ob_start();//开启

code…..

ob_end_flush(); //刷新缓存

可以防止header提示错误);

不同的浏览器对Cookie的处理机制不一样

客户端存在 cookie 限制。一个浏览器创建的 Cookie 数量最多为 30 个,同时每个 Cookie 不能超过 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 机制,在需要用到 session 的程序文件的最开始调用 session_start()。

注册 session 变量的操作是 session_register()

session_unregister() 会逐个删除 session 变量。它的作用是删除 session 中的变量,一个一个地进行删除操作。

判断 session 变量是否已经进行了注册

销毁所有的 session 变量,其中包含文件等所有相关的 session 变量。

需要注意下面几个方面:

函数 session_start()需要在程序开始时就执行,在它之前不能有任何输出的内容,不然的话

会出现这样的情况:“Warning:无法发送会话 cookie - 头部已经”

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

函数 session_register()的作用是注册要保存在 session 中的相关变量,它的用法情况如下:

val 是要注册的 session 变量名,在进行注册操作时,绝对不能加上“$”这个符号,只需写出它的变量名称就行。

函数 session_unregister() 的用法和上面的函数完全一样,然而它们的功能是相反的。上面的函数是用于注册的。

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

函数 session_is_registered()的作用是判断 session 变量是否已经被注册。

函数 session_destroy()的主要作用是在系统进行注销和退出操作时,将所有的 session 变量予以销毁。此函数无需参数,只需直接进行调用即可。

Session与PHP.ini的关系配置

1,session.save_handler = file

用于读取和回写 session 数据的方式,其默认情况是 files。这样一来,PHP 的 session 管理函数就会利用指定的文本文件来存储 session 数据。

session 的保存路径为“/xammp/temp/”。

可以指定保存 session 文件的目录到别的地方,不过指定的目录必须要有 httpd 守护进程属主(如 apache 或 www 等)的写权限,不然就无法回存 session 数据。同时,它还能写成 session.save_path = “N;/path” 的形式,这里的 N 是整数。这样会导致并非所有的 session 文件都被保存在同一个目录里,而是分散在不同的目录中。这对服务器处理大量的 session 文件很有帮助。(注:目录需手动创建)

3,session.auto_start = 0

启用该选项后,用户的每次请求都会使 session 被初始化。不建议使用这种方式,最好通过 session_start()来明确地初始化 session。

上图中,左侧的是保存在 xammp/tmp/ 这个位置下的 session 文件,其内容是以 PHP 序列化的格式呈现的。

右侧第一行是将 $_SESSION['name'] 进行序列化操作,即 echo serialize($_SESSION['name']);

第二行是打印session值

其中的文件名是 session-name,其内容是以 PHP 序列化的格式呈现。

cookie与session的区别和关系

存储位置:

会话存储在服务器的位置上,能够通过 php.ini 里配置与会话相关的配置。

cookie存储在客户端上的上(其实可以分两种:

持久性 cookie 有设置其存在时间,并且是以文件形式存在于硬盘上的。

会话 cookie 没有设置 cookie 时间,其生命周期是在关闭浏览器之前就会消失。通常它不会保存在硬盘中,而是保存在内存上。

cookie和session的关系

从上面的图可以看到:

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

48阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

40阅读

php一句话木马,一句话木马ctf

2026年10月05日

43阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

44阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

42阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

38阅读