PHP Header函数跳转时需要注意的一些问题

在通过php的header('Location:http://www.111cn.net')做跳转时.有时会不成功.追其原因有以下几种情况:

写法错误

•location和“:”号间不能有空格,否则会出错。

•在用header()前不能有任何的输出。

•header后的PHP代码还会被执行,所以在函数之前最好加上exit()来停止之后程序的执行

另外还有一个问题,算是比较低级了

编码报错

 代码如下 复制代码

<?php
 header("location:http://www.111cn.net/");
?>

要求header前没有任何输出,否则会报错。

当我们以 ANSI 格式编码时(多数默认情况),可以正常实现PHP跳转。

 代码如下 复制代码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

有时我们需要在网页中事先判断跳转条件,如果符合则正常显示网页,而网页是以 UTF-8 格式编码,此时使用header则会报错。
原因是 UTF-8 编码在文本开始处偷偷地输出了三个字符(BOM),默认对我们不可见。因此不满足“header前没有任何输出”的条件,从而报错。

 
解决方法是使用Notepad++等文本编辑器打开文件,转为 UTF-8 无 BOM 编码格式,保存退出即可。

PHP header 默认302临时重定向,如需要使用301永久重定向,可使用以下代码。

 代码如下 复制代码
<?php
 header("HTTP/1.1 301 Moved Permanently");
 header("Location: http://feitsui.net/");
?>

如果不关注HTTP状态,可以使用JavaScript实现跳转。

 代码如下 复制代码

<script type="text/javascript">
 window.location.href="http://www.111cn.net/";
</script>

三,顺序问题

 代码如下 复制代码

<?php
if(1){
    header("Location:http://www.baidu.com/");
}
    header("Location:01.php");
    header("Location:03.php");
    header("Location:http://www.sina.com");
    echo "111";
    header("Location:http://www.g.cn");
    echo "222";
    header("Location:http://www.163.cn");
    echo "333";
?>

如上代码为什么不跳转到header("Location:http://www.baidu.com/");?

另外一个问题服务器读PHP文件,是读一点发送给客户端一点,还是一次读完后,才发送给客户.Javascript是怎么个读法?

 php脚本是从上往下是顺序读的,在服务器端一次性读完以后发给客户端,这个文件,当读到if时本应该发送header("Location:http://www.baidu.com/");但是下面还有header("Location:01.php");
header("Location:03.php");
header("Location:http://www.sina.com");就会继续读到最后一条而echo的优先级低于低于header,当很多个header并列时就会把最后一条显示,就像显示数组一样,$forum[],当你写 echo $forum就只会把数组中的最后一条记录显示。javascript是客户端脚本,当你的页面下载后以后所有的javascript脚本文件就已经在你的电脑里面了,只有对其操作时才会有响应。

时间: 2024-08-01 06:46:16

PHP Header函数跳转时需要注意的一些问题的相关文章

php ci框架中header()页面跳转问题

问题描述 php ci框架中header()页面跳转问题 使用header函数跳转的时候可以找到指定的url 也能找到页面,但是页面就是不跳转,url不变,这是怎么回事 Request URL:http://localhost/login Request Method:POST Status Code:302 Request Headersview source Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:zh-CN,

PHP Header用于页面跳转时的几个注意事项_php技巧

前言 本文介绍的是在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题 一.location和":"号间不能有空格,否则会出错. 二.在用header前不能有任何的输出. 三.header后的PHP代码还会被执行. 下面是和asp中重定向response.redirect的比较: 例1: response.redirect "../test.asp" header("

PHP header() 函数详细说明(301、404等错误设置)

  如果您刚刚开始学习PHP,可能有许多函数需要研究,今天我们就来学习一下PHP Header()的使用方法,更多的使用说明,请您参照PHP中文手册,下面是关于header函数的详细使用说明 不管页面有多少header,它会执行最后一个,不过是有条件的,例如: header('Location:http://www.liehuo.net'); header('Location:http://www.g.cn'); header('Location:http://www.baidu.com');

Php header()函数语法及使用代码_php技巧

语法: 复制代码 代码如下: Void header(string $string[,bool $replace=true [, int $http_response_code) 向客户端发送原始的HTTP报头需注意:Header函数必须在任何实际的输出前调用,无论是一般的html标签.文件中空行,或者来自php.就是在这个函数之前不能有任何形式的输出.参数说明: 参数 描述string 必需.规定要发送的报头字符串.replace 可选.指示该报头是否替换之前的报头,或添加第二个报头.默认是

php header函数下载文件实现代码

header函数最常用的不是用于下载而是用于发送http类的 跳转 它会执行最后一个,不过是有条件的,例如:  代码如下 复制代码 header('Location:http://www.111cn.net"); header('Location:http://www.g.cn'); header('Location:http://www.baidu.com'); 这个就会跳到百度 header('Location:http://www.111cn.net');echo '烈火网; header

PHP header() 函数使用方法总结

header分为三部分: 第一部分为HTTP协议的版本(HTTP-Version): 第二部分为状态代码(Status): 第三部分为原因短语(Reason-Phrase). header()函数使用说明:   一.作用:   ~~~~~~~~~          PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了,可参照http://www.w3.org/Protocols/rfc2616/rfc2

PHP通过Header()函数实现文件下载

PHP通过Header()函数实现文件下载,如下代码: <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <title>应用header()函数实现下载 - www.cxybl.com</title>  <style type="text/css">  &

java web-选择下拉框的一个选项后跳转时,怎么让跳转后的界面(原来界面刷新)的下拉框中元素是选择的那个

问题描述 选择下拉框的一个选项后跳转时,怎么让跳转后的界面(原来界面刷新)的下拉框中元素是选择的那个 请问一下,选择下拉框的一个选项后跳转时,怎么让跳转后的界面的下拉框中元素是选择的那个,以上是相关的js和jsp代码.然后我找了一下教程,在js中开头和结尾加了俩句,但是好像没用 解决方案 下拉列表的onchange处理函数see()方法中你取得下拉列表选中的值存储到type变量,使用url(window.location.href=...) 传递这个参数type=选中值,迁移到本画面后会刷新本画

html5-请问JavaScript如何隐藏页面跳转时地址栏的参数

问题描述 请问JavaScript如何隐藏页面跳转时地址栏的参数 页面里不是form表单 button按钮的函数如下: setPass: function() { window.location.href="setpass.vue?tel=" + this.user.phone; } 每次点击按钮时跳转页面地址栏都有参数信息,请问用window.location.href 如何隐藏参数?谢谢 解决方案 get的话肯定是没办法隐藏参数,自己动态创建一个表单,表单method改为post,