특정 시간 PHP 후 페이지 리디렉션


95

잠시 후 리디렉션을위한 특정 PHP 기능이 있습니다. 어딘가에서 봤는데 기억이 안나. 로그인 후 Gmail 리디렉션과 같습니다. 제발, 누구든지 저에게 상기시켜 줄 수 있습니까?


@zerkms : 몇 가지 방법이있는 것 같습니다.
Wesley Murch

2
@Wesley Murch : Refresh헤더는 표준이 아닙니다. RFC로 다루지 않는 것은 절대 사용하지 않습니다
zerkms

stackoverflow.com/questions/18305258/...는 저를 인도 stackoverflow.com/questions/283752/refresh-http-header 아니라 표준되지 않는으로 새로 고침 헤더는 Internet Explorer에서 성능 문제가 발생 있다고한다.
Edward

답변:


231
header( "refresh:5;url=wherever.php" );

이것은 5 초 안에 header당신을 리디렉션 할 PHP 방법입니다.wherever.php


일반적인 HTML 태그, 파일의 빈 줄 또는 PHP에서 실제 출력을 보내기 전에 header ()를 호출해야합니다. include, require, 함수 또는 다른 파일 액세스 함수를 사용하여 코드를 읽고 header ()가 호출되기 전에 출력되는 공백이나 빈 줄이있는 것은 매우 일반적인 오류입니다. 단일 PHP / HTML 파일을 사용할 때 동일한 문제가 존재합니다. (소스 php.net )


1
흥미롭게도 전에는이 방법을 본 적이 없지만 타이머가 만료 될 때까지 빈 페이지가 표시되거나 메시지없이 유휴 상태가되지 않습니까?
Ibu

페이지를 표시 할 것입니다. 헤더 마녀를 설정하면 브라우저가 5 초 안에 페이지를 새로 고치도록 지시 할 것입니다. 빈 페이지를 표시하려면 간단히 사용하십시오die();
Teneff

2
이것에 대한 나쁜 점은 :이 헤더는 HTTP 표준이 아니므로 클라이언트는 무시할 수 있습니다.
Sven

:) 좋은 생각! 그리고 일부 변수를 전송 (유지)하고 다시로드 된 페이지에서 사용하려면?
Mugur Ungureanu 2014

그 어쩌면 억 년이 게시물 이후하지만 어쩌면 같은 리디렉션 "리디렉션 페이지, 기다려주십시오"하면서 당신은 메시지를 게시 어떻게
CAO

25

잠시 후 자바 스크립트를 사용하여 리디렉션 할 수 있습니다.

setTimeout(function () {
   window.location.href= 'http://www.google.com'; // the redirect goes here

},5000); // 5 seconds

11
PHP 관련 질문
Benjamin Intal 2013 년

5
@Jami 그것이 사실이기 때문에 OP가 javascript를 대신 사용할 수 있다고 말했습니다.
Ibu

@BenjaminIntal 이것은 또한 브라우저가 헤더의 리디렉션을 무시하는 경우 훌륭한 폴백으로 작동합니다. 헤더를 허용하지 않는 브라우저를 사용하고 리디렉션을 수신하지 않으려면 자바 스크립트를 비활성화해야합니다.
Super Cat

18

이것을 시도 할 수 있습니다.

header('Refresh: 10; URL=http://yoursite.com/page.php');

10은 초입니다.


11

메타 태그를 작성하기 위해 PHP를 사용하고 싶을 것입니다.

<meta http-equiv="refresh" content="5;url=http://www.yoursite.com">

권장하지는 않지만 가능합니다. 이 예에서 5는 새로 고치기 전의 시간 (초)입니다.


3
header( "refresh:5;url=wherever.php" );

실제로이 코드를 teneff가 말한대로 사용할 수 있지만 전송 된 출력 앞에 반드시 헤더를 넣을 필요는 없습니다 ( "cannot relocate header .... : 3 오류"가 출력됩니다).

이를 해결하려면 ob_start();html이 출력되기 전에 php 함수 를 사용하십시오 .

ob를 종료하려면 ob_end_flush();html 출력이없는 후에 넣으십시오 .

건배!


2

PHP로 리디렉션하는 경우에는 단순히 sleep () 명령을 사용하여 리디렉션하기 전에 몇 초 동안 절전 모드를 사용하면됩니다.

그러나 당신이 언급하는 것은 메타 새로 고침 태그라고 생각합니다.

http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm


수면을 사용하는 것은 기존의 접근 방식이 아닙니다. 위에서 언급했듯이 헤더 함수를 사용해야합니다.
막심

수면은 연결을 지연시키지 않습니까?
FluorescentGreen5

2

파일을 저장하기 위해 다른 이름으로 저장 대화 상자를 열 때 5 초 후 PHP 새로 고침이 작동하지 않았습니다. (header ( 'Content-type : text / plain'); header ( "Content-Disposition : attachment; filename = $ filename > ");)

다른 이름으로 저장 링크를 클릭하고 파일을 저장 한 후 호출 페이지에서 시간 제한 새로 고침이 중지되었습니다.

그러나 대단히 감사합니다. ibu의 자바 스크립트 솔루션은 내 웹 페이지를 계속해서 똑딱 거리고 새로 고쳤습니다. 이것이 내 특정 응용 프로그램에 필요한 것입니다. 그래서 여기에 php 문제에 대한 자바 스크립트 솔루션을 게시 해 주셔서 감사합니다.

잠시 후 자바 스크립트를 사용하여 리디렉션 할 수 있습니다.

setTimeout(function () {    
    window.location.href = 'http://www.google.com'; 
},5000); // 5 seconds

2

이 자바 스크립트 코드를 사용하여 특정 시간 후에 리디렉션 할 수 있습니다. 그것이 효과가 있기를 바랍니다.

setRedirectTime(function () 
{
   window.location.href= 'https://www.google.com'; // the redirect URL will be here

},10000); // 10 seconds

0

PHP 시간 프로그래밍 리디렉션 :

 <?php
 header("Refresh:10;url=***-----índex.php--OR----URL-----");
 ?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.