2011-01-01 2 views
7

페이지를 다른 페이지로 리디렉션하려고하는데 정상적으로 작동하고 있습니다. 그러나 첫 페이지를 다른 페이지로 리디렉션하려고합니다. 이 페이지는 5 초 후에 다른 페이지로 리디렉션됩니다.페이지를 다른 페이지로 5 초 동안 리디렉션 한 다음 다시 리디렉션

나는이 작업을 수행하여 그렇게하려고 :

가 완벽하게 ads.php의 고라를 보여주고 있지만, 5 초 후 리디렉션되지 그러나
<?php 
include('ads.php'); 
?> 
<?php 
sleep(2); 
$url = $_GET['url']; 
header("Location: ".$url.""); 
exit; 
?> 

. 내 웹 브라우저에서 오류가 발생하고 있습니다 :

Warning: Cannot modify header information - headers already sent by 
(output started at /home/nucleusi/public_html/adverts/ads.php:1) 
in /home/nucleusi/public_html/adverts/index.php on line 7 

내가 리디렉션 될 것이다 전형적인 링크이 될 것이라고하기 :

http://domain.com/adverts/index.php/?url=http%3A%2F%2Fitunes.apple.com%2Fmx%2Falbum%2Fstill-got-the-blues%2Fid14135178%3Fi%3D14135158

+1

답변을보고 싶습니다. 놀랄 겁니다. –

+0

@Col. Shrapnel - 생각한 크리스마스는 좋은 며칠 전이었습니다. :-) –

답변

5

넣어 같은 자바 스크립트를하는 것입니다

<?php header("refresh:5;url=secondredirectafter5seconds.php"); ?> 

이 바로 첫 페이지로 리디렉션됩니다 그것은 당신의 초를 리디렉션합니다 : 광고 페이지는이 넣어 5 초 후에 다시 시작합니다. Doctype과 html 태그 앞에 넣으면 헤더 정보를 수정할 수 없으므로이 기능이 도움이되기를 바랍니다.

EDIT : 자바 스크립트를 사용하면 모든 사용자가 위치를 변경할 수 있으므로 보안상의 위험이 따릅니다. 이렇게하면 사용자가 어디로 향하고 있는지 완벽하게 제어 할 수 있습니다.

+0

이러한 리디렉션을 수행하기 위해 JavaScript를 사용하면 보안 위험이 발생할 수 있습니다. 이론 상으로는 모든 사용자 에이전트가 표준 (3xx) HTTP 상태 코드에 대해서도 최종 사용자와상의 한 후에 만 ​​리다이렉션 수행을 거부 할 수 있습니다. 당신은 정통한 사용자가 귀하의 페이지 소스를 수정할 수 있고 다른 곳으로 리다이렉트 할 수 있지만 브라우저의 주소 표시 줄과 마찬가지로 쉽게 할 수 있습니다! 사용자 에이전트를 제어 할 수 없기 때문에 HTTP RFC를 따르기를 바라는 것 이상으로 사용자를 제어 할 수 있다고 가정해서는 안됩니다. – Rob

+0

내가 추가 한 이유는 그들이 소스를 바꿀 수 있고 그들이 어디로 가고 있는지 정확히 알기 때문입니다. PHP에서는 파일 이름을 알 수 없으므로 URL을 변경할 수없는 파일 이름을 알지 못합니다. 한 번 해보고 나면, 역사에 저장 될 것이지만, 나는 사용자보다는 통제력을 가지고있는 이런 종류의 것을 선호한다. 클라이언트가 제어하고자하는 광고는 대부분 사용자가 제어 할 수있는 것이 아니며, PHP로하기 쉽습니다. 나는 대부분의 시간을 사용자를 통제하지 않는 것에 동의하지만 이것은 내가 생각하는 예외이다. – jefffan24

2

를 사용하여 자바 스크립트에서는 window.location

1
메타 태그 또는 새로 고침

이 도움이 될 수도 있습니다.

setTimeout("javascript window.location",3000) 

with regar DS

Wazzy

+0

고마워, 내가 어디에 넣을 까? –

0

모든 페이지는 헤더와 내용을 가지고있다. 방문자를 다른 페이지로 리디렉션하려면 페이지의 헤더 섹션에서해야합니다. 페이지 콘텐츠 (광고)를 인쇄하고 나면 콘텐츠를 효과적으로 시작하게되어 헤더를 수정하지 않아도됩니다. 에 그런

<?php header("location: adlocationhere.php"); ?> 

:

이 작업을 수행하는 가장 좋은 방법은 문서 타입 또는 HTML 태그 이전

(광고 전) 첫 페이지에
<script> 
function redirect() { window.location = '$url'; } 
setTimeout("redirect();", 5000); 
</script> 
+0

이 지금까지이 있고, – styler1972

+0

확인하기 전에, 아마도 페이지의 맨 아래에 있습니다 .. HTML에서 할 것이지만, 여전히 리디렉션되지 않습니다' ' –

+1

자바 스크립트에 $ _GET 기능이 없습니다. 그 PHP는 엄격히. 당신이 할 수있는 일은 ... var url = ; 함수 redirect() {window.location = url; } .... 그리고 그게 효과가있다. – jefffan24

관련 문제