php怎么设置cookie作用域?

php中,可以使用setcookie()函数来设置cookie的作用域。语法为“setcookie(name,value,expire,path,domain,secure)”,可以通过设置domain参数的值来设置cookie作用域

php怎么设置cookie作用域?

当我们给网站设置cookie时,大家有没有发现在网站的其他域名下也接收到了这些cookie。这些没用的cookie看似不占多少流量,但如果对一个日PV千万的站点来说,那浪费的资源就不是一点点了。因此在设置cookie时,对它的作用域一定要设置准确了。

我们都知道在PHP中用setcookie 来设置网站的cookie,【相关教程推荐:《PHP教程》】

该函数的用法如下:

setcookie(name,value,expire,path,domain,secure)

登录后复制

1.png

立即学习“PHP免费学习笔记(深入)”;

今天我们就来探讨一下它的第五个参数domain,因为它决定了cookie的作用域。

现在有如下3个域名,一个顶级域名、一个二级域名和一个三级域名:

① zydya.com

②blog.zyday.com

③one.blog.zyday.com

首先在①zyday.com域名下设置cookie,做四次测试,分别设置domain参数为空、’zyday.com’、’blog.zyday.com’与’one.blog.zyday.com’。

√表示该域名下能取到cookie,×表示不能取到cookie

domain参数zydya.comblog.zyday.comone.blog.zyday.comsetcookie(‘name’,1,time()+1) √ √ √setcookie(‘name’,1,time()+1,’/’,’zyday.com’) √ √ √setcookie(‘name’,1,time()
+1,’/’,’blog.zyday.com’) × × ×setcookie(‘name’,1,time()
+1,’/’,’one.blog.zyday.com’)×××

当domain设置为空时,domain默认为当前域名,并且该域名下的子域名都可以接收到cookie。

但是domain参数设置其子域名时,所有域名就接收不到了,包括那个子域名。

然后在②blog.zyday.com域名下设置cookie,测试条件同上

domain参数zydya.comblog.zyday.comone.blog.zyday.comsetcookie(‘name’,1,time()
+1)×√√setcookie(‘name’,1,time()+1,’/’,’zyday.com’)√√√setcookie(‘name’,1,time()+1,’/’,’blog.zyday.com’)×√√setcookie(‘name’,1,time()+1,’/’,one.blog.zyday.com’)×××

看第二行,domain参数是zyday.com,是blog.zyday.com的父域名,那么zyday.com下所有子域名(包括zyday.com、blog.zyday.com、one.blog.zyday.com)都能接收到cookie。

当domain为自身域名时,那么其父域名不受影响,其本身与其子域名可以接收到cookie。
而设置其子域名或其他域名时,所有域名都接收不到cookie了。

最后在③one.blog.zyday.com域名下设置cookie

domain参数zydya.comblog.zyday.comone.blog.zyday.comsetcookie(‘name’,1,time()
+1)××√setcookie(‘name’,1,time()+1,’/’,’zyday.com’)√√√setcookie(‘name’,1,time()+1,’/’,’blog.zyday.com’)×√√setcookie(‘name’,1,time()+1,’/’,one.blog.zyday.com’)××√

第三个测试得出的结论在上面已经总结了。再看一遍,这里就不多解释了。

domain的设置,有两点要注意:

1.在setcookie中省略domain参数,那么domain默认为当前域名。

2.domain参数可以设置父域名以及自身,但不能设置其它域名,包括子域名,否则cookie不起作用。

那么cookie的作用域:

cookie的作用域是domain本身以及domain下的所有子域名。

推荐学习:PHP编程从入门到精通

以上就是php怎么设置cookie作用域?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2132154.html

(0)
上一篇 2025年2月24日 23:11:12
下一篇 2025年2月24日 02:03:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php中foreach()怎么用

    php中foreach只适用于数组,并用于遍历数组中的每个键值对,foreach循环语句的语法是“foreach ($array as $value) {code to be executed;}”。 php中foreach()用法: fo…

    2025年2月24日
    200
  • php insert into 乱码怎么办

    php insert into乱码的解决办法:1、在数据库连接前,加入“mysql_query(“SET NAMES UTF8”);”;2、在html页头加入“content-type:text/html; char…

    2025年2月24日
    200
  • php与mysql连接查询的方法

    php与mysql连接查询的方法:首先使用“mysql_connect”连接MySQL;然后使用“mysql_select_db”打开一个数据库;最后使用“mysql_query”函数查询数据即可。 推荐:《PHP教程》  PHP与MYSq…

    2025年2月24日
    200
  • php mysql连接失败怎么办

    php mysql连接失败是因为php高版本已经不再使用“mysql_connect()”来连接MySQL数据库,其解决办法就是使用mysqli或PDO来替代“mysql_connect”并重新连接mysql即可。 推荐:《PHP教程》 P…

    2025年2月24日
    200
  • php扩展安装教程

    php扩展安装的方法:首先下载php源码包并编译安装;然后修改系统设置;接着在configure后加上参数来对安装进行控制;最后修改相应的配置文件即可。 推荐:《PHP教程》 php扩展安装教程 以php安装swoole扩展为例。 php源…

    2025年2月24日
    200
  • linux php 验证码不显示怎么办

    linux php验证码不显示是因为linux不支持相对路径,其解决办法就是将路径补充完整,语句为“/usr/local/apache2/htdocs/slms/include/arial.ttf”。 推荐:《PHP教程》 在linux下P…

    2025年2月24日
    200
  • php如何隐藏后门

    php隐藏后门的方法:1、创建系统隐藏文件;2、利用ADS隐藏文件;3、在php环境变量中留shell;4、设置不死马;5、设置“php.ini”后门;6、将关键字拆分,并进行多文件包含;7、将真正的一句话写入数据库。 推荐:《PHP教程》…

    2025年2月24日 编程技术
    200
  • php SMTP服务器配置方法

    php SMTP设置方法:首先注册一个用于网站发送邮件的QQ邮箱;然后登录后台管理员界面;接着找到“系统全局设置中的SMTP服务设置”;最后填写SMTP登录用户名和SMTP登录密码即可。 推荐:《PHP教程》 准备工作:      注册一个…

    2025年2月24日 编程技术
    200
  • php不显示中文怎么办

    php不显示中文的解决办法:1、在php头部中加入“header(“Content-type:text/html;charset:utf-8”);”;2、在html头部加入“”。 推荐:《PHP教程》 应该要进行编码…

    2025年2月24日
    200
  • php显示不了图片怎么办

    php显示不了图片的解决办法:1、在“php.ini”文件中将“extension=php_gd2.dll”前的分号去掉;2、正确设置“extension_dir”;3、把文件保存为“utf8 no bom”格式。 推荐:《PHP教程》 P…

    2025年2月24日
    200

发表回复

登录后才能评论