PHP 错误:Cannot send session cookie – headers already sent by ..解决办法

php session 错误 1. 错误提示 Warning: Cannot send session cookie – headers already sent Warning: Cannot send session cache limiter – headers already sent 分析及解决办法 这一类问题,的原因是你在程序中使用session_start()时,之前已经有实际的html内容输出了。或许你说,我没有啊,我只不过是echo或print一条消息了。很抱歉,你的echo或print语句所产生的输出,就是实际的html内容输出。解决此类问题的办法是,将你的session_start()调到程序的第一行 立即下载
This news item was posted in PHP Code, PHP Framwork category and has 3 Comments so far.

有时候PHP总是出现以下类似问题:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output ....... on line 67

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (…….. on line 67

此问题非常诡异,网上也有大把的解决方式,下面有转载,本人的解决方法也很诡异,把出错的include 文件用写字板新建,copy源内容,竟然神奇的好了。我相信是 DW 的问题。不深究了,转贴:

Warning Cannot send session cookie – headers already sent…问题的解决(PHP的UTF-8 BOM引起的问题)

习惯了用edit plus进行php编程,所以有时会出现一些不为人知的错误,很麻烦;
近日,在开发项目时,某些页面总是出现以下问题:

Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at E:\web\Apache2\htdocs\index.php:1) in E:\web\Apache2\htdocs\functions\sessions.php on line 67

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at E:\web\Apache2\htdocs\index.php:1) in E:\web\Apache2\htdocs\functions\sessions.php on line 67
经过详细搜索,得到以下原因:
我的edit plus中设置了默认的编码为utf-8,且UTF_8签名为:总是添加签名;
于是尝试以下操作:
在edit plus 的工具->参数->文件->UTF_8签名一项中,更改选项”总是添加签名”为”总是移除签名”,然后打开index.php文件,并重新另存为,重新运行脚本,终于可以正常了;

另外,在网上找到了两篇比较有参考价值的文章,希望有人碰到此种情况时可以完美解决!

一个UTF-8 BOM引起的PHP的诡异问题2007-06-30 14:29一、

//—a.php

将a.php保存为utf-8格式,结果用浏览器访问这个php文件,就会出现如下错误:
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started

at ×××.php:1) in ×××on line 2

这个问题很常见,多数是因为在session_start之前有输出了!对于老鸟来说,这个错误基本上不会发生,但是如果你是用DW或是editplus等编

辑器写代码的,连高手也有可能发生这个错误!

如上面的提示:在第×××文件的第1行,×××文件的第2行,随你看,这两处是不会有任何输出语句的,很奇怪还是会出错,为什么呢
原来:

Unicode 签名 (BOM) 可在文档中包括字节顺序标记 (BOM)。BOM 是位于文本文件开头的 2 到 4 个字节,可将文件标识为 Unicode,如果是这

样,还标识后面字节的字节顺序。由于 UTF-8 没有字节顺序,因此可以选择添加 UTF-8 BOM。对于 UTF-16 和 UTF-32,这是必需的。
看见没有!如果选了这个选项,就会在页面的最前面输出2到4个字节!

而 session_start() 要求之前没有任何输出给客户端浏览器

二、

另外还有一个地方可能会出错,例如:
/–a.php–
?>
空行
空行

如果你包含a.php之后再来也会有这个问题,通常的建议是经常被包含的文件末尾不要有?>

又如:
在调用Session_Start()之前不能有任何输出.例如下面是错
误的.
==========================================
1行
2行
==========================================

已经经过试验,事实确实是如此诡异。
三、

session_start()
set_cookie()
header()
前面都加上@应该可以抑制这个警告。

四、

在editplus编辑器中,如果先把utf-8的a.php文件转换为gb2312或是其他,然后再转换为utf-8这样就可以成功访问了,也就是说文件开头的

BOM被去掉了,这时候的UTF-8 是无BOM类型的了

PHP-关于utf-8编码问题引起的session_start()错误

2007-02-15 14:55:01

大中小
采用默认的gb2312编码时,兼容Ansi编码,文件头部无任何附加信息,此时session_start()可以正常工作。
采用utf编码时,大部分编辑器都会在在文件头部附加一个BOM块,我的EditPlus附加的是FF FE,用16进制编辑器
可以很清楚的看到。这样,当调用session_start()时,实际上已经向浏览器输出两个字节,只不过是不可见字符浏
览器中出现如下警告:
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at ………………….

解决方法:
1、手动去掉BOM块,可以在16进制编辑器如UltraEdit中编辑,或者采用编辑器自带的功能,好的编辑器一般提供选择是否去除BOM块。
2、自己编写脚本更正,这要针对不同的编辑器,BOM头定义:
UTF-8 EF BB BF
UTF-16 Big Endian FE FF
UTF-16 Little Endian FF FE
UTF-32 Big Endian 00 00 FE FF
UTF-32 Little Endian FF FE 00 00

解决方法

在进行PHP session 操作的时候,如果出现:Warning: Cannot send session cookie – headers already sent…”或者“Cannot add header information – headers already sent…”

只需对php.ini中的Output_buffering进行设置,默认值为no,将这个修改为1就可以了。

You can leave a response, or trackback from your own site.
Unity3D 2022版如何一键安装Newtonsoft.Json?最新Package Manager教程 本文详细介绍了在Unity3D 2022及以上版本中,如何通过Package Manager一键安装和配置Newtonsoft.Json(Json.NET)。教程涵盖了从打开Package Manager、搜索并安装正确包源,到验证安装和基础使用的完整流程,旨在帮助开发者以现代化、可靠的方式集成这一强大的JSON处理框架,提升开发效率并规避手动导入的常见问题。 阅读详情

相关推荐

广义平均(Generalized Mean, GeM)

本位介绍了广义平均操作的定义和简要推导,帮助大家理解其含义。

qq_45802280的博客 4547

session_start(): Cannot send session cookie - headers already sent

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by 配置php网站的时候,经常会在页首出现Warning: session_start() [function.session-start]: Cannot send sessio...

weixin_43702272的博客 529

SystemVue 链路预算、仿真分析步骤

使用SystemVue进行链路预算、频谱分析等,相对ADS更全面。

BeCourageable的博客 3836

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent

今天在配置php网站的时候,经常会在页首出现Warning: session_start() [function.session-start]: Cannot send session cache limiter,也不影响页面打开。 就到百度中查找了一下,实际解决了问题,先记录下来,以备后患,呵呵 Warning: session_start() [function.session

打杂人-aerchi 2222

【Anaconda】解决“libGL error: MESA-LOADER: failed to open iris”问题

stackoverflow中的“libGL error: MESA-LOADER: failed to open iris”问题。而在自己创建的conda环境中的lib下出现`GLIBCXX_3.4.30’ not found 的情况。在上述解决方案中,将第一行命令的lib路径换成自己创建的conda环境lib路径,运行指令,问题解决。目前问题解决,总结一下查找资料以及解决方法。运行如下命令,发现本地支持。

quintus0505的博客 5024

Transformer在量化交易中的应用:从时序预测到策略生成

Transformer模型凭借其强大的自注意力机制,在自然语言处理领域取得了革命性突破。其核心原理是通过并行计算和动态权重分配,有效捕捉序列数据中的长距离依赖关系。这一特性使其在金融时间序列分析中展现出巨大技术价值,能够处理市场数据中的复杂非线性模式和长期关联。在量化交易场景下,Transformer可将价格、成交量等连续数据通过离散化分桶处理,转化为类似文本的序列,进而进行预测或直接生成交易信号。本文以QuantGPT项目为例,探讨了如何将这一前沿AI架构迁移应用于金融领域,涵盖了从数据作为“语言”的编码

weixin_26757949的博客 366

Warning: session_start() [function.session-start]: Cannot send session cookie解决办法

在很多时间使用了session就会出来如下提示了, Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u114264/include/db_mysql教程.class.php教程:1) in...

weixin_33869377的博客 389

QT实现OPCUA服务端客户端(附完整源码)

QT实现OPCUA服务端客户端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1822

php 打印cookie报错,php报错:Cannot send session cookie – headers already sent by的解决方法...

错误消息:Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output ....... on line 67Warning: session_start() [function.session-start]: Cannot send se...

weixin_35920379的博客 581

基于STM32设计的智能家居控制系统(华为云)_363

本项目设计并实现了一种基于STM32的智能家居控制系统,融合了语音识别、远程控制、环境监测与安全报警等功能。系统以STM32F103C8T6单片机为核心控制器,集成ESP8266 Wi-Fi模块实现与华为云IOT物联网平台的数据交互,采用MQTT协议进行通信。用户可通过语音识别模块控制风扇、空调、窗帘、卧室灯、客厅灯和电视等家电的开关操作,同时也可通过Android手机APP或Windows电脑上位机进行远程控制。系统还具备温湿度、光照强度、烟雾浓度和火焰检测功能,当检测到异常情况时,自动触发蜂鸣器报警并向

882

学Simulink——基于Simulink的单相PWM整流器PI电压外环+电流内环控制建模示例

本文详细介绍了基于Simulink的单相PWM整流器双闭环控制仿真方法。通过电压外环PI控制器调节有功功率生成电流指令,电流内环PI控制器实现正弦电流跟踪,最终达到输出电压稳定(400V±2V)、输入电流THD<3%、功率因数>0.99的目标。文章包含系统架构、数学模型、Simulink搭建步骤(主电路、PI控制器、SPWM调制等)及三种典型工况的仿真验证,并给出电感设计、数字实现等工程实践要点。该方案克服了传统整流器高谐波、低功率因数的问题,为绿色电源开发提供了可验证的仿真模型。

xiaoheshang_123的博客 75

免排查代码 完美解决 Cannot send session cookie – headers already sent by .. SESSION新手问题

不需要排查代码解决session_start前面不允许输出的问题 引入 近日闲来无事,用原生写了一个小项目,没想到平时用管框架,到了php原生连一个session的调用发起都存在编写细节问题。 调用session_start()时抛出了Cannot send session cookie – headers already sent 的错误 寻找解决方案 在网上搜搜搜了一大堆,都是老生常谈的在se...

LYJSpeedX独家技术分享 3451

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

如何解决"Cannot send session cache limiter – headers already sent "错误

session_start(); 今天接手了一个非常老的项目,只能采用php5.2及以下版本才行。然而在运行之初就碰到一个问题: 在网上找了下,介绍很详细(以下转载自博客园赢风 ): 如果使用基于cookie的session(cookie-based sessions),那么在使用Session_start()之前浏览器不能有任何输出,否则会出现"Cannot send session cac...

码农Robin的博客 1260

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

php header already sent by...报错处理方法 Cannot send session cookie – headers already sent by

php Cannot modify header information - headers already sent by (output started.....)报错处理方法 近几天,对刚完成的一个小站,在本地测试没有任何问题,本地所用的开发环境为:wamp 可上传至服务器时,却出现的了: Warning: Cannot modify header information - headers already sent by (output started.....) 打开网站...

tongluren381的博客 908

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

session或cookie失效,Cannot send session cookie – headers already sent by ..

This news item was posted in PHP Code, PHP Framwork category and has 3 Comments so far. 有时候PHP总是出现以下类似问题: Warning: session_start() [function.session-start]: Cannot send session cookie - headers alre...

y18749247391的博客 1932

如何解决”Cannot send session cache limiter – headers already sent “错误

如果使用基于cookie的session(cookie-based sessions),那么在使用Session_start()之前浏览器不能有任何输出,否则会出现”Cannot send session cache limiter – headers already sent”错误,所以首先要确保Session_start()在开始输出之前执行,一般直接放到php文件的最上方. 如果Sessi

Robote Blog 2634

Warning: Cannot send session cookie – headers already sent…

相信大多数人在写PHP代码的时候,都遇到过类似"Warning: Cannot send session cookie – headers already sent…“或者”Cannot add/modify header information – headers already sent…"这样的Warning提示.下面我们就来看看发生这个Warning的原因及解决方案。 函数 head...

weixin_30457065的博客 154

Warning session_start() Cannot send session cookie

Warning Cannot send session cookie - headers already sent...问题的解决(PHP的UTF-8 BOM引起的问题) 习惯了用edit plus进行php编程,所以有时会出现一些不为人知的错误,很麻烦;。 近日,在开发项目时,某些页面总是出现以下问题: Warning: session_start() [function.session-s...

weixin_34248849的博客 261

Warning: session_start(): Cannot send session cookie - headers already sent by

1.问题: Warning: session_start(): Cannot sendsession cookie - headers already sent by (output started at D:\Apache\Apache24\htdocs\www\index.php:5)in D:\Apache\Apache24\htdocs\www\inc\conn.php on line 

geek-wk 1395

Warning:session_start():Cannot send session cache limiter - headers already sent by

Cannot send session cache limiter - headers already sent错误解决方法 是PHP版本的问题。 低了!!!      调高点就行。 网上长篇大论一点用都没。!!

u012062810的专栏 649

php cookie start,php – 警告:session_start():无法发送会话cookie – 已发送的头文件(输出以...

参见英文答案 >“Cannot send session cache limiter – headers already sent”1登录页面中出现以下警告:它在localhost中工作,但不在远程主机中警告:session_start()[function.session-start]:无法发送会话cookie – 已...

weixin_34620780的博客 271

php session不可用,php使用session时出现的报错

一、PHP使用session时出现的报错如下:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent解决方法:1、php.ini中的output_buffering=off 改成output_buffering=40962、php.ini中...

weixin_35697297的博客 351

php session_start()报错 解决办法

 这段时间开始搞PHP了,第一次用SESSION,就遇到了这个问题,错误提示:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent于是上网找了一下,网上的高手们列出了各种解决办法,这里汇总一下:1.php.ini中的output_

小逗狗的专栏 2341

关于php开发过程当中遇到的Cannot send session cookie - headers already sent by 问题

问题: Cannot send session cookie - headers already sent by     有几个可能导致这个问题,一是编码采用了utf-8 并且用了bom的,那么,请把bom去除。 方法是另存为utf-8,不带bom的文件格式。   但是有人发现自己是ANSI的文件格式,那么,请检查php.ini文件中,是否有开启:   session.save_

虚拟等待的专栏 3691

解决PHP "headers already sent"错误

发送或者修改 HTTP 头信息的方法必须在任何输出被输出之前被调用。否则调用将会出错:Warning: Cannot modify header information - headers already sent (output started at script:line)这些方法可以修改(modify) HTTP 头信息:header / header_removesession_start...

qq_41750040的博客 1万+
上一篇: Invalid command 'RewriteEngine'解决办法
下一篇: 如何解决”Cannot send session cache limiter – headers already sent “错误
luomingchu
博客等级 码龄20年 24粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值