PHP setcookie无效的原因分析

一个在apache+XP下开发的企业网站上传到iis6.0服务器,出现setcookie设置无效的问题,仔细研究了研究,总结了一下 php setcookie 无效大概有以下三种原因。

一、程序文件存在 BOM 代码,对于这种情况,只需将源代码拷贝出来,然后新建一个文件保存进去即可。至于如何查询文件是否存在 bom 代码,可参考本站文章:

php bom去除工具,php批量去除bom的代码

二、检查PHP.ini里面相关cookie的设置,配置相关可以网络上面搜索。

三、php代码中使用了header()函数,且在 header 前面存在空格或者换行。header()函数发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错。一般的情况下,清除掉前面的空格就可以了。但如果还是不行,你可以按如下操作:

在页面顶部加上:

1 ob_start();//控制您的浏览器cache,加在setcookie代码之前,一般加在页面顶部
2 ob_get_clean();//输出浏览器cache,看看结果是否存在cookie,加在setcookie代码之后,一般加在页面最后

打赏此文

如果您觉得本站的内容对您有所帮助,您可以扫描下面的二维码小额支付请我喝杯茶,感谢!打赏记录
支付宝
微信
承诺:凡打赏捐助的朋友,留言备注自己的邮箱,在打赏捐助时间点的6个月内,本站会每周邮件推送原创专业技术博文,供大家学习和参考!

留下评论

All fields marked (*) are required