>백엔드 개발 >PHP 문제 >PHP 헤더로 점프하는 방법

PHP 헤더로 점프하는 방법

藏色散人
藏色散人원래의
2022-12-02 09:14:347385검색

PHP 헤더에서 점프를 구현하는 방법: 1. "Header("Location:$url");" 구문을 사용하여 점프를 구현합니다. 2. if 판단을 사용하여 점프를 구현하고 해당 점프 문은 "if($ _COOKIE ["u_type"]){ header('location:register.php') } else{ setcookie('u_type','1','86400*360');".

PHP 헤더로 점프하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

PHP 헤더에서 점프를 달성하는 방법은 무엇입니까?

페이지 점프에 PHP 헤더를 사용할 때 주의해야 할 몇 가지 문제 요약

PHP에서 헤더("location:test.php")를 사용하여 점프할 때 다음 사항에 주의하세요. , 이는 초보자를 위한 몇 가지 문제를 해결하는 데 도움이 됩니다. 자주 발생하는 문제

1. header() 함수

header() 함수는 PHP에서 페이지로 이동하는 매우 간단한 방법입니다. header() 함수의 주요 기능은 HTTP 프로토콜 헤더(header)를 브라우저에 출력하는 것입니다.

header() 함수의 정의는 다음과 같습니다.

void header (string string [,bool replace [,int http_response_code]])

선택적 매개변수인 replacement는 이전의 유사한 헤더를 대체할지 아니면 동일한 유형(www.jb51.net)의 헤더를 추가할지를 나타냅니다. 기본값은 replacement입니다.

두 번째 선택적 매개변수 http_response_code는 HTTP 해당 코드를 지정된 값으로 강제합니다. 헤더 함수의 Location 유형 헤더는 페이지 이동을 구현하는 데 자주 사용되는 특수 헤더 호출입니다. 참고:

1.location과 ":" 기호 사이에는 공백이 있으면 안 됩니다. 그렇지 않으면 점프하지 않습니다.

2. 헤더를 사용하기 전에는 출력이 불가능합니다.

3. 헤더 뒤의 PHP 코드도 실행됩니다. 예를 들어 브라우저를 jb51.net

<?php 
 //重定向浏览器 
header("Location: https://www.jb51.net"); 
 //确保重定向后,后续代码不会被执行 
exit;
?>

1로 리디렉션합니다. 한 문장의 PHP 점프 코드:

<?php 
$url = $_GET[&#39;url&#39;];
Header("Location:$url");
?>

2. 판단 시 PHP 점프 코드:

코드는 다음과 같습니다.

if($_COOKIE["u_type"]){ header(&#39;location:register.php&#39;); } else{ setcookie(&#39;u_type&#39;,&#39;1&#39;,&#39;86400*360&#39;);//设置cookie长期有效 header(&#39;location:zc.html&#39;);

참고: zc로 저장합니다. php에서 사용자가 zc.php를 방문하면 쿠키가 있는지 확인합니다(www.jb51.net). 존재하지 않으면 쿠키를 만들고 zc.htmlfrom:https로 이동합니다. ://www.jb51.net/phper/php-cy/62883.htm

URL 리디렉션 기능

// URL重定向
function redirect($url, $time=0, $msg=”) {
 //多行URL地址支持
$url = str_replace(array(“n”, “r”), ”, $url);
 if ( empty($msg) )
 $msg = “系统将在{$time}秒之后自动跳转到{$url}!”;
if (!headers_sent()) {
 // redirect
 if (0 === $time) {
 header(‘Location: ‘ . $url);
 } else {
 header(“refresh:{$time};url={$url}”);
echo($msg);
 }
 exit();
 } else {
 $str = “<meta http-equiv=&#39;Refresh&#39; content=&#39;{$time};URL={$url}&#39;>”;
if ($time != 0)
 $str .= $msg;
 exit($str);
 }
 }

위에서는 페이지 점프 후 404 상태 코드가 반환될 수 없습니다.

function getref()
 {
 $url = @$_SERVER[&#39;HTTP_REFERER&#39;];
 if( !empty( $url ) )
 {
 if( !strstr($url ,&#39;jb51.net&#39; ) && !strstr($url,&#39;jb51.net&#39;))
 {
 @header("http/1.1 404 not found");
 @header("status: 404 not found");
 include("404.html");//跳转到某一个页面,推荐使用这种方法
 exit();
 }
 }
 else
 {
 @header("http/1.1 404 not found");
 @header("status: 404 not found");
 include("404.html");//跳转到某一个页面,推荐使用这种方法
 exit();
 }
 }

301을 하고 싶다면 거의 똑같습니다

<?php 
 $the_host = $_SERVER[&#39;HTTP_HOST&#39;];
 $request_uri = isset($_SERVER[&#39;REQUEST_URI&#39;]) ? $_SERVER[&#39;REQUEST_URI&#39;] : &#39;&#39;;
 if($the_host !== &#39;www.jb51.net&#39;)
 {
  //echo $_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;PHP_SELF&#39;];
  header(&#39;HTTP/1.1 301 Moved Permanently&#39;);
  header(&#39;Location: https://www.jb51.net&#39; . $_SERVER[&#39;PHP_SELF&#39;] . $request_uri);
 }
 ?>

추천 학습: "PHP Video Tutorial"

위 내용은 PHP 헤더로 점프하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.