使用はお勧めできないようです
<meta http-equiv=REFRESH CONTENT=3;url=url>
リダイレクト用ですが、代わりに使用します
header('Location: url')
ただし、ユーザーにメッセージを表示し、リダイレクトする前にそれを読む時間を与えたいと思います。メタなしでそれを行う方法はありますか?
「リフレッシュ」ヘッダーを使用してみてください:
header('Refresh: 3;url=page.php');
また、この Question Refresh HTTP Headerを見ることもできます。
metarefreshタグを使用しても問題はありません。
<meta http-equiv="refresh" content="5;URL='http://example.com/'" />
そのタグは、5秒待ってexample.comにリダイレクトすることを示しています。このタグは、ユーザーがIE6を使用していても問題なく機能し、履歴ボタンを壊すだけです。
JavaScriptを使用することもできますが、 「自動的にリダイレクトされない場合は、ここをクリックしてください」というリンクを必ず含めてください。実際には、どちらの方法でもそのリンクを含める必要があります。
php でヘッダーを設定すると、5 秒で test.php にリダイレクトされます。
header( "refresh:5;url=test.php" );
実際の出力が送信される前に呼び出します。
そしてJavaScriptで:
setTimeout(function () {
window.location.href= url; // the redirect goes here
},5000); // 5 seconds
ヘッダー タグは、ページの読み込み時にブラウザーに送信されるため、レンダリングや履歴への読み込みを気にすることなく、ユーザーを目的のページにすばやくリダイレクトできます。そのため、ヘッダーが既に処理されているため、ページが既に読み込まれている場合はリダイレクトを呼び出すことはできません。
代わりに、次の方法でこれを実行できます。
header( "refresh:5;url=wherever.php" );
基本的<meta>
に、ページ自体のヘッダーにタグを設定します。つまり、タグを書き出す必要はありません。
あなたが言っていることによって、理論的にはこれはうまくいくはずです:
URL: 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 では動作しないことがわかりました。
小さな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>
私は本当に最善の方法はheader("Refresh: 10;url=../index.php");
、私が自分の仕事でやったことのようなものだと思います.