- 浏览: 68822 次
- 性别:
- 来自: 南京
文章分类
最新评论
在PHP中用header("location:test.php")进行跳转要注意以下几点:
1、location和“:”号间不能有空格,否则会出错。
2、在用header前不能有任何的输出,包括include的页面中标签“?>”后不能有空格!!
3、header后的PHP代码还会被执行。
续:
问题:header函数前输入内容
一般来说在header函数前不能输出html内容,类似的还有setcookie() 和 session 函数,这些函数需要在输出流中增加消息头部信息。如果在header()执行之前有echo等语句,当后面遇到header()时,就会报出 “Warning: Cannot modify header information – headers already sent by ….”错误。就是说在这些函数的前面不能有任何文字、空行、回车等,而且最好在header()函数后加上exit()函数。例如下面的错误写法,在 两个php代码段之间有一个空行:
<?php
//some code here
?>
//这里应该是一个空行
<?php
header(“http/1.1 403 Forbidden”);
exit();
?>
原因:
PHP脚本开始执行 时,它可以同时发送http消息头部(标题)信息和主体信息. http消息头部(来自 header() 或SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中. 这样就可以允许你修改标题信息,包括缺省的标题(例如Content-Type 标题).但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML 或 print()调用),那么PHP就必须先发送完所有的Header,然后终止 HTTPheader.而后继续发送主体数据.从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。
解决办法:
修改php.ini打开缓存(output_buffering),将output_buffering=0修改成output_buffering=4096
或 者在程序中使用缓存函数ob_start(),ob_end_flush() 等。原理是:output_buffering被启用时,在脚本发送输出时,PHP并不发送HTTPheader。相反,它将此输出通过管道(pipe) 输入到动态增加的缓存中(只能在PHP4.0中使用,它具有中央化的输出机制)。你仍然可以修改/添加header,或者设置cookie,因为 header实际上并没有发送。当全部脚本终止时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。
转载自:http://www.9958.pw/post/php_header
发表评论
-
项目管理之如何控制项目进度和质量
2016-07-16 22:37 606控制项目进度和质量首先在整体上要有一个合理清晰的流程,并且在整 ... -
15 个非常棒的 CSS3 效果教程
2016-07-03 20:42 5881. 创建一个漂亮的图标 这个教程将教你如何用纯 C ... -
前20名的不安全密码(需要避免)
2016-07-01 21:41 514下图举例说明了一些人们作出选择密码时最常用的错误,以及如何使你 ... -
js实现图片放大缩小后进行的复杂排序
2016-06-30 21:57 584首先,我们来讲下需求: 1.图片分为大小和小图,大图占四个小 ... -
史上最全ajax(原生JS,javascript版,非jquery)详细注释!
2016-06-29 22:31 810史上最全ajax详细注释!(原生JS,javascript版, ... -
php千万级pv架构经验分享
2016-06-28 22:04 1294转载自:http://www.9958.pw/post/ph ... -
ecshop 时间问题请注意 /data/config.php
2016-06-27 22:43 866ecshop 处理时间,绕来绕去, 后台的时区设置, 并非以 ... -
目前比较流行的二维码的生成
2016-06-26 23:55 584最近比较流行二维码,自己百度了一下发现有一个很不错的实现方法使 ... -
如何阻止移动设备(手机,pad)浏览器双击放大网页?
2016-06-24 22:29 1214现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置 ... -
PHP解决Xss跨域攻击以及sql注入等危险字符串方案类库
2016-06-19 21:45 778由于该模块在项目中的要求是 不能提示任何信息,也不作断点操作, ... -
网站敏感骂人词库及算法(附6仟个敏感词)
2016-06-16 22:07 5885原文:「我今天开着张三丰田去上班 」 strtr:「我今天开 ... -
jQuery制作元素在屏幕中水平垂直居中效果
2016-06-14 21:56 599jQuery.fn.center = function () ... -
纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
2016-06-11 21:32 9761、正方形 CSS代码如下: #square { widt ... -
分享一个JQuery写的点击上下滚动的小例子
2016-06-08 22:00 502效果图 演示地址 源码下载 <!--more--> ... -
精美的国外扁平化网页设计作品
2016-06-05 16:02 598Who Wanna <!--more--> ... -
提交您的博客到各大网站
2016-06-03 21:04 381各大搜索引擎网站登录入口: Google收录入口:http:/ ... -
推荐7个 CSS3 制作的创意下拉菜单效果
2016-06-02 22:15 4021. 使用 jQuery 和 CSS3 制作向下滑动的导航菜单 ... -
Dev Http Client(Chrome的HTTP插件)
2016-05-31 22:34 755Dev Http Client(Chrome的HTTP插件) ... -
好的用户界面-界面设计的一些技巧
2016-05-29 16:24 4021 尽量使用单列而不是 ... -
项目组制定的一份页面优化指南
2016-05-27 21:40 3641.文档声明 文档声明必须置于网页的HTML部分的最开始,标签 ...
相关推荐
以下是对PHP header()失效的原因分析以及相应的解决方法的详细解释。 ### 失效的原因分析 1. **脚本中存在输出内容** 在PHP脚本中,如果在调用header()函数之前有任何输出,包括echo、print语句或者HTML内容,...
综上所述,理解`header()`函数的工作原理以及如何解决其跳转失效的问题对于PHP开发者来说至关重要。遵循上述方法,能够有效地排查并修复此类问题,保证代码的正常运行。同时,了解相关HTTP协议和PHP配置知识,也有助...
`php header`函数是PHP中一个非常重要的函数,它允许开发者向浏览器发送原始HTTP头部信息。HTTP头部信息在客户端和服务器之间传输时起到控制请求和响应的重要作用。本篇文章将详细解析`header`函数的使用及其相关...
`header()`函数是PHP中用来发送HTTP头信息的关键函数,它允许我们向浏览器发送各种类型的数据,包括设置Cookie。下面我们将详细讨论如何使用`header()`函数发送Cookie以及相关的知识点。 首先,让我们来看一下提供...
在PHP脚本执行过程中,任何在header()之前已经输出的内容都会导致header()函数失败。这意味着包括HTML标签、空格、换行符等在内的任何输出都将阻止header()函数正常工作。例如,以下代码将会导致错误: ```php ...
PHP中的header()函数主要用于在实际输出到浏览器之前向客户端发送HTTP报头。这个函数非常关键,尤其是在进行页面跳转或设置特定的HTTP响应状态码时。header()函数的基本语法是: ```php void header(string $string...
在使用header函数进行页面跳转时,需要确保遵循上述的规则和注意事项,以免遇到重定向失败或导致其他脚本错误的问题。正确地运用header函数可以帮助开发者在Web开发中实现流畅的用户体验和合理的页面导航。
JWT由三个部分组成:header.payload.signature 以下示例以JWT官网为例 header部分: { alg: HS256, typ: JWT } 对应base64UrlEncode编码为:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 说明:该字段为jso
在PHP中,通过header函数实现文本文件的下载是一种常见的技术手段。当用户点击一个文本文件的链接时,通常浏览器会尝试直接打开文件,但通过设置HTTP头部信息,我们可以强制浏览器弹出下载对话框,让用户选择保存...
本文将集中分析PHP中服务器端的跳转机制,特别是通过header函数实现的页面跳转。 首先,我们需要了解HTML代码中的页面跳转方式。在HTML中,页面跳转通常通过`<meta>`标签实现,它能够指定页面在加载后一段时间自动...
需要注意的是,在使用header函数之前,必须确保没有任何输出(包括空格、换行符等)已经发送给浏览器,否则会导致header函数调用失败,并出现“headers already sent”错误。此外,header函数发送的头部信息应该与...
PHP中的header()函数是一个非常重要的函数,它主要用于在发送实际的输出内容给浏览器...如果header()函数未能正常工作,务必检查是否在输出内容前调用header(),或者是否有其他地方输出了内容导致header()发送失败。
1. **动态库加载失败**:PHP在启动时尝试加载指定路径下的dll文件(例如 `php_exif.dll`、`php_mbstring.dll` 或 `libmcrypt.dll`),但未能成功。 2. **路径问题**:错误消息中提到的路径可能存在问题,如文件不...
有时候 SQL 语句不起作用,对数据库操作失败。最简便的调试方法是,echo 那句 SQL,看看变量的值能得到不。 11. include 和 require 的区别 include 和 require 都可以用来包含文件,但是它们etween 的区别是,...
这是一个常见的错误,如果你将其指定为 Nginx 主机上的目录,可能会导致配置失败。 在 nginx.conf 文件中,我们需要添加以下配置项: ``` http { ... upstream php { server 192.168.1.135:9000; } ... ...
echo "上传失败。"; } } else { echo "只允许上传jpg/png文件。"; } } ?> ``` 在处理跨域上传图片时,我们需要考虑CORS(Cross-Origin Resource Sharing)策略。由于浏览器的安全限制,不同源的请求会被阻止,...