http-equiv实现跳转与header跳转有啥区别?还是这两个就没有任何区别

WBOY
풀어 주다: 2016-06-06 20:42:41
원래의
936명이 탐색했습니다.

<code><br>session_start();
if(isset($_SESSION['userId'],$_SESSION['name'],$_SESSION['rights'])){



    echo "<meta http-equiv='\"refresh\"' content='\"0;url=mannager.php\"'>";

}


else{

    echo "<meta http-equiv='\"refresh\"' content='\"0;url=login.php\"'>";
}
</code>
로그인 후 복사
로그인 후 복사

如上代码,这个与header实现跳转有什么不一样呢?

回复内容:

<code><br>session_start();
if(isset($_SESSION['userId'],$_SESSION['name'],$_SESSION['rights'])){



    echo "<meta http-equiv='\"refresh\"' content='\"0;url=mannager.php\"'>";

}


else{

    echo "<meta http-equiv='\"refresh\"' content='\"0;url=login.php\"'>";
}
</code>
로그인 후 복사
로그인 후 복사

如上代码,这个与header实现跳转有什么不一样呢?

区别就是:

meta redirect可以应用于, http headers已经发送出去的情况. 比如网页已经渲染了一半,却要做跳转. 还有个好处就是可以延时跳转.

header redirect就是, http headers还没发送时做跳转, 比如,网页一打开, 还没渲染, 就跳转. 这个时候用header("Location: url", $status_code). 还可以加status code而前者就不行了.

我更倾向于header, 用meta redirect, 偶尔遇到过跳转没成功, 变空白. header redirect可以加status_code, 对于seo还是比较好的.

像你这个代码, 用header吧. session_start(); 只有在http headers还没发送时,才能调用成功.

如果一定要用meta redirect, 建议后面加个 exit;


仔细想想,一个在服务端,一个在浏览器,没啥好比较的..... :[

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