programing

PHP 페이지 리다이렉트

luckcodes 2022. 11. 7. 22:25

PHP 페이지 리다이렉트

함수를 실행한 후 PHP가 리다이렉트 호출을 할 수 있습니까?완료 시 동일한 루트 폴더에 있는 파일로 리다이렉트하고 싶은 함수를 만들고 있습니다.할 수 있을까?

if (...) {
    // I am using echo here.
} else if ($_SESSION['qnum'] > 10) { 
    session_destroy();
    echo "Some error occured.";
    // Redirect to "user.php".
}

, 헤더 기능을 사용합니다.

/* Redirect browser */
header("Location: http://www.yourwebsite.com/user.php"); 
exit();

전화하는 것은 좋은 습관이다.exit()아래 코드가 실행되지 않도록 합니다.

또, 메뉴얼로부터 다음의 정보를 참조해 주세요.

header()는, 통상의 HTML 태그, 파일의 공백 행, 또는 PHP 로부터 실제의 출력을 송신하기 전에 호출할 필요가 있습니다.include(), require(), 함수 또는 다른 파일액세스 함수를 사용하여 코드를 읽고 header()를 호출하기 전에 공백 또는 빈 행을 출력하는 것은 매우 일반적인 오류입니다.단일 PHP/HTML 파일을 사용하는 경우에도 동일한 문제가 발생합니다.

즉, 그 직전에는 아무것도 에코하지 않는 것이 좋습니다.header()에러가 발생할 가능성이 높기 때문에 기능합니다.또한 이 코드가 다른 출력보다 먼저 실행되는지 확인해야 합니다.

javascript를 Failsafe로 사용하면 헤더가 이미 전송된 경우에도 사용자가 리디렉션됩니다.여기 있습니다.

// $url should be an absolute url
function redirect($url){
    if (headers_sent()){
      die('<script type="text/javascript">window.location=\''.$url.'\';</script‌​>');
    }else{
      header('Location: ' . $url);
      die();
    }    
}

상대 패스를 적절히 취급할 필요가 있는 경우는, 그 함수를 작성했습니다(단, 그것은 질문의 범위외입니다).

간단한 방법은 다음과 같습니다.

  echo '<script>window.location.href = "the-target-page.php";</script>';
   $url='the/url/you/want/to/go';
   echo '<META HTTP-EQUIV=REFRESH CONTENT="1; '.$url.'">';

난 이거면 돼

header( "Location: http://www.domain.com/user.php" );

하지만 에코를 먼저 실행하고 리다이렉트를 할 수는 없습니다.

<?php

    http_redirect("relpath", array("name" => "value"), true, HTTP_REDIRECT_PERM);

?>

nixxx 추가와 같이ob_start()php 코드를 추가하기 전에 이미 전송된 헤더의 오류를 방지할 수 있습니다.

그것은 나에게 효과가 있었다.

다음 코드도 동작합니다.그러나 먼저 페이지를 로드한 후 사용할 때 리디렉션됩니다.

echo '<META HTTP-EQUIV=REFRESH CONTENT="1; '.$redirect_url.'">';

이 코드를 사용하여 php로 리디렉션할 수 있습니다.

<?php
/* Redirect browser */
header("Location: http://example.com/");
/* Make sure that code below does not get executed when we redirect. */
exit;
?>

네.

기본적으로 아무것도 출력되지 않는 한 로케이션헤더를 발행하기 전에 원하는 것(세션 종료, 사용자 쿠키 삭제, Pi to 'n' 자리 계산 등)을 할 수 있습니다.

php 파일에 리다이렉트를 포함시키고 싶은 경우는, 선두에서 출력 버퍼링을 유효하게 해, 페이지내의 어느 장소에서라도 리다이렉트를 호출할 수 있습니다.예:

 <?php
 ob_start(); //first line
 ... do some work here
 ... do some more
 header("Location: http://www.yourwebsite.com/user.php"); 
 exit();
 ... do some work here
 ... do some more

header() 함수는 다음을 수행합니다.

header("Location: user.php");

언급URL : https://stackoverflow.com/questions/2112373/php-page-redirect

'programing' 카테고리의 다른 글

PHP 추상 속성  (0) 2022.11.07
Apache HttpClient 4.3의 SSL 인증서 무시  (0) 2022.11.07
어레이를 JSON으로 변환  (0) 2022.11.07
matplotlib 범례 마커 한 번만  (0) 2022.11.07
C#의 문자열에서 함수를 호출한다.  (0) 2022.11.07