> 백엔드 개발 > PHP 튜토리얼 > php跳转 - php提示「headers already sent by」具体怎么修改!

php跳转 - php提示「headers already sent by」具体怎么修改!

WBOY
풀어 주다: 2016-06-06 20:36:38
원래의
973명이 탐색했습니다.

纯新人,跳转代码别人帮我写的,目的是跳转,文件为go.php
当网址输入go.php?id=taobao的时候就跳转到www.taobao.com

换主机后发生错误
Warning: Cannot modify header information - headers already sent by (output started at /data/home/。。。。。。/go.php:8) in /data/home/。。。。。。/go.php on line 10

百度得知需要改php.ini但新主机改这个很麻烦。。求有没有直接在以上文件php代码里修改以上错误的方法?

代码:

<code>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>正在进入....</title>


<?php $id=$_GET["id"];
if($id=="taobao"){Header("Location:http://www.taobao.com");
}
?>


</code>
로그인 후 복사
로그인 후 복사

请问应该怎么修改?谢谢!!!

回复内容:

纯新人,跳转代码别人帮我写的,目的是跳转,文件为go.php
当网址输入go.php?id=taobao的时候就跳转到www.taobao.com

换主机后发生错误
Warning: Cannot modify header information - headers already sent by (output started at /data/home/。。。。。。/go.php:8) in /data/home/。。。。。。/go.php on line 10

百度得知需要改php.ini但新主机改这个很麻烦。。求有没有直接在以上文件php代码里修改以上错误的方法?

代码:

<code>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>正在进入....</title>


<?php $id=$_GET["id"];
if($id=="taobao"){Header("Location:http://www.taobao.com");
}
?>


</code>
로그인 후 복사
로그인 후 복사

请问应该怎么修改?谢谢!!!

go.php页面的作用只做判断跳转使用的话,html标签可以全部去除,go.php文件的代码只需精简到剩下php即可:

<code>php</code><code><?php $id=$_GET["id"];
if($id=="taobao"){Header("Location:http://www.taobao.com");
}
</code></code>
로그인 후 복사

如果还出现headers already sent 错误的话,就应该是编写代码的编辑器在文件开头隐藏了bom头信息,网上搜一下相关的编辑器对应方法即可。

如果要保留html代码,并且想要跳转的话,需要使用浏览器端页面跳转的方法,代码可以修改为:

<code>php</code><code>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>正在进入....</title>


<?php $id=$_GET["id"];
switch($id) {
    case 'taobao':
        echo "<meta http-equiv=\"refresh\" content=\"0;url=http://taobao.com\">";
        break;
    case 'baidu':
        echo "<meta http-equiv='\"refresh\"' content='\"0;url=http://taobao.com\"'>";
        break;
    case 'others':
        echo "<meta http-equiv='\"refresh\"' content='\"0;url=http://others.com\"'>";
        break;
}
?>


</code>
로그인 후 복사

【http-equiv实现跳转与header跳转有啥区别】请参照 http://segmentfault.com/q/1010000000703858

<?php ... ?>代码块放到文件最顶部.

header() 被用来发送自定义的 HTTP 报文。
请注意一点header()必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行,空格或者是PHP>文件里的空行,空格。
这是一个非常普遍的错误,在通过include,require,或者其访问其他文件
里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。
如果不是调用其他文件,仅仅是单独使用一个PHP或者HTML文件,在header()被调用之前有输出也会出错。
php手册

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿