
时间:2016-08-17 13:35 来源:IT猫扑网原创|http://www.itmop.com 作者:IT猫扑网 我要评论(0)
我做了一个统一的出错提示函数,在函数执行里面,先处理出错的地址写入cookie以方便用户登陆以后可以直接跳转到要执行的这个页面,可是发现在服务器上测试时,竟然提示本地没有出现的错误: Warning: Cannot modify header information - headers already sent by....
这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释:
cookie本身在使用上有一些限制,例如:
1.呼叫setcookie的敘述必須放在<html>标签之前
2.呼叫setcookie之前,不可使用echo
3.直到網頁被重新載入後,cookie才會在程式中出現
4.setcookie函数必須在任何資料輸出至浏览器前,就先送出
5.....
基於上面這些限制,所以執行setcookie()函数时,常會碰到&Undefined index&、&Cannot modify header information - headers already sent by&...等問題,解決&Cannot modify header information - headers already sent by&这个錯誤的方法是在产生cookie前,先延缓資料输出至浏览器,因此,您可以在程式的最前方加上ob_start();这个函數。这样就可以解决了。
如果要加上ob_start()的话,不大可行,程序都写完了,才来改这个似乎有点郁闷..
发现提示这个错误的时候,我就在想我本地怎么没提示这个问题呢,还以为是PHP.ini配置不一样,想想又不对,都是差不多的..
于是看看后面跟的那句&output started at....&意思是在setcookie之前已经在另一处有输出了,于是找到output started at后面跟的那个文件,看到第一行是空白的,然后才是<?php 这样开始,难道会是这一行的问题吗??我本地也有这一行呢,去掉,刷新再试,呵呵,果然出在这里,不再提示warning了
解决完毕!
解决方法二:
查找网上解决此问题的方法多是一样的,不过今天又遇到了这样的问题。试过之后发现可行:
在C盘的WINDOWS中找到php.ini 这个配置文件,然后查找一项:output_buffering将其值由原来的off改为on,重新启动IIS 或者 Apache就ok了。
关键词标签:php,解决方法
相关阅读 PHP 链接 mysql 例子 PHP中$_SERVER的详细用法 PHP上传(文件,图片)类 全面提升PHP速度攻略 实例学习PHP中的正则表达式 php中的日期时间
热门文章
2021年最好用的10款php开发工具推荐
plsql developer怎么连接数据库-plsql developer连接数据库方法
在 PHP 中使用命令行工具
php应用程序安全防范技术研究
关于php curl获取301或302转向的网址问题
开心数独游戏最新版 v1.64
时间:2024-04-26
漳州市安全教育平台手机版 v1.9.2
时间:2024-02-21
六边形拼图游戏无限提示版 v2.18
时间:2022-01-07
三界传说 v1.0
时间:2018-01-09
狂暴超人 v1.0.500
时间:2018-01-09
九游寻侠客手游 v1.1
时间:2017-12-28
人气排行 详解ucenter原理及第三方应用程序整合思路、方法 plsql developer怎么连接数据库-plsql developer连接数据库方法 PHP中防止SQL注入攻击 PHP会话Session的具体使用方法解析 PHP运行出现Notice : Use of undefined constant 的解决办法 PHP如何清空mySQL数据库 CakePHP程序员必须知道的21条技巧 PHP采集图片实例(PHP采集) 完美解决failed to open stream: HTTP request failed! <? phpinfo() ?>无法执行的解决办法 2021年最好用的10款php开发工具推荐 用header或meta实现PHP页面编码的区别
查看所有0条评论>>