2011-01-01 11 views
7

ページを別のページにリダイレクトしようとしていて、正常に動作していました。しかし、最初のページを別のページにリダイレクトしようとしています。このページは5秒後に別のページにリダイレクトされます。ページを別のページに5秒間リダイレクトしてからリダイレクトする

私はこれを行うことによって、それをやろうとしています:

それは完全に ads.phpで広告を見せているが、それは5秒後にリダイレクトされていませんが
<?php 
include('ads.php'); 
?> 
<?php 
sleep(2); 
$url = $_GET['url']; 
header("Location: ".$url.""); 
exit; 
?> 

。私は自分のWebブラウザでこのエラーが発生します:

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

としてJavaScriptを持つことです。

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

をその後に広告ページは次のようになります。

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

これにより、最初のページがすぐにリダイレクトされ、秒がリダイレクトされます5秒後に次のページに進みます。 Doctypeやhtmlタグの前に置くと、ヘッダー情報を変更できないようにする必要があります。

編集:また、javascriptを使用すると、セキュリティ上のリスクが発生する可能性があります。ユーザーはその場所を変更できます。このようにすることで、ユーザーがどこに向けられているかを完全に制御することができます。

+0

このようなリダイレクトを実行するためにJavaScriptを使用すると、セキュリティ上のリスクがどのようになるかわかりません。理論的には、標準の(3xx)HTTPステータスコードの場合でも、エンドユーザに相談した後でのみ、すべてのユーザエージェントがリダイレクトの実行を拒否することができます。経験豊かなユーザーがページソースを変更し、他の場所にリダイレクトされる可能性はありますが、ブラウザのアドレスバーで簡単にこれを行うことができます。ユーザーエージェントを制御することができないため、HTTP RFCに準拠することを望む以上、ユーザーを制御することはできません。 – Rob

+0

私が追加した理由は、ソースを変更できるb/cで、どこに行くのか正確に知っているからです。 phpではファイル名が分からないことがあるので、ファイル名を知らなくてもURLを変更することはできません。一度それを行った後、それは歴史に保存されますが、私はユーザーよりもむしろ私がコントロールしているものを使って、このようなことを好むだけです。クライアントがコントロールしようとしている広告のほとんどは、ユーザーがコントロールできず、PHPで簡単に行うことができます。私はほとんどの時間をユーザーを制御しないことに同意しますが、これは私が信じる例外です。 – jefffan24

2

使用してメタタグを更新するか、JavaScriptのwindow.locationの

1

これはあなたを助けるかもしれない

setTimeout("javascript window.location",3000) 

とregar DS

Wazzy

+0

ありがとう、どこに私はこれを置くだろうか? –

0

すべてのページは、ヘッダとコンテンツを持っています。訪問者を別のページにリダイレクトするには、ページのヘッダーセクションで行う必要があります。ページコンテンツ(広告)を印刷すると、効果的にコンテンツが開始され、ヘッダーを変更する必要はありません。

これを行うための最善の方法は、DOCTYPEまたはHTMLタグがつけ前に(広告の前に)最初のページに、このような

<script> 
function redirect() { window.location = '$url'; } 
setTimeout("redirect();", 5000); 
</script> 
+0

これはOK – styler1972

+0

前に、私は今のところこれを持っているが、それはまだリダイレクトされていない、ページの一番下に、おそらく.. HTMLで行われることになります。 ' <?php include( 'ads.php'); exit; ?> ' –

+1

javascriptには$ _GET機能がありません。そのPHPは厳密に。あなたができることは... var url = <?php echo $ _GET ['url']; ?>;関数redirect(){window.location = url; } ....そしてそれはうまくいくはずです。 – jefffan24

関連する問題