2012-06-22 17 views
16

リダイレクトのためは、メタのhttp-当量= REFRESHのCONTENT =時間なしで、数秒後にPHPでページをリダイレクトする方法

<meta http-equiv=REFRESH CONTENT=3;url=url> 

を使用する代わりに使用することはお勧めできませんようだ

header('Location: url') 

しかし、私はユーザーに何らかのメッセージを表示して、リダイレクトする前にそれを読む時間を与えたいと思います。メタなしでそれを行う方法はありますか?

+1

あなたはJavaScriptを考慮しましたか?私は自分自身でメタタグを使用したいと思います。 – BugFinder

+0

私はjavascriptが "meta"タグよりも不適切だと思います。 – Dador

答えて

35

てみ使用は、ヘッダ "リフレッシュ":また

header('Refresh: 3;url=page.php'); 

を、あなたはこの質問Refresh HTTP Headerで見ることができます。

+0

は ''と同じではありませんか? –

+0

これは同じですが、さまざまな方法で行います。 – Dador

+0

はhtmlのタグの中に置かれ、httpストリーム内でheader()のように動作しているのだろうかと思います。それが本当であれば、どちらも同じです。 –

1

あなたはjavascriptの小片でそれを行うことができます。

もちろん
<script type="text/javascript" language="JavaScript">location.href = 'otherpage.php';</script> 

、これはJavaScriptが有効になった人に依存します。

明らか

、あなたがたsetTimeoutのようなものを使用することができます遅延を設定するには:

<script type="text/javascript" language="JavaScript"> 
    setTimeout(function() { 
         location.href = 'stackoverflowhelp.php'; 
       }, 5000); 
</script> 
4

ヘッダータグは、ページの読み込み時にブラウザに送信されるため、ユーザーは目的のページにレンダリングしたり、履歴にロードしたりすることなくすばやくリダイレ​​クトできます。そのため、ヘッダーは既に処理されているため、ページが既に読み込まれたらリダイレクトを呼び出すことはできません。

あなたは代わりに、これを実行することができます。

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

基本的にあなたがタグを記述する必要はありませんつまり、ページ自体のヘッダに<meta>タグを設定します。ヘッダーを設定するには

5

PHPの道、5秒でtest.phpをするためにリダイレクトされます:任意の実際の出力が送信される前に

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

コール。

とJavaScriptで:

setTimeout(function() { 
    window.location.href= url; // the redirect goes here 
},5000); // 5 seconds 
6

メタリフレッシュタグを使用したことには何も問題はありません。

<meta http-equiv="refresh" content="5;URL='http://example.com/'" /> 

このタグは5秒待ってからexample.comにリダイレクトします。このタグは、ユーザーがIE6を使用していても機能しない限り問題にはなりません。履歴ボタンを破棄するだけです。

JavaScriptを使用することもできますが、というリンクを含めてください。「自動的にリダイレクトされない場合はここをクリックしてください。あなたは実際にどちらかの方法でそのリンクを含めるべきです。

URL:

+0

メタリフレッシュタグはこのhttp://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-elementに従って廃止されているようです – zhenming

2

皆さんが言っていることで、理論的にはこれは、動作するはずhttp://www.example.com/ticketgen/index.php?success=1&redir=1

<?php 
$myredir = ($_GET['redir']); 
    if ($myredir == 1) 
    { 
     header("refresh:5;url=http://www.example.com/ticketgen/"); 
    } 
?> 

をしかし、それは何もしません。私はまた、ヘッダーを送ることができるようにページの非常に上にそれを持っています。

Firefoxで動作しません。ただ見つけました。

1

私は本当に最善の方法だと思いますheader("Refresh: 10;url=../index.php"); 私の仕事でやったことのように。

-1

https://codingislove.com/redirect-pages-php/

チェックアウト、彼らは明らかに時間を設定することにより、PHPのページをリダイレクトする方法について説明し、上記の記事を。時間が設定されていない

リダイレクトコード: ヘッダ( '位置:URLアドレス')。

3秒の時間でコードをリダイレクトします。 header( 'refresh:3; url = URL ADDRESS');

関連する問題