使用することはお勧めできないようです
<meta http-equiv=REFRESH CONTENT=3;url=url>
リダイレクトの代わりに使用します
header('Location: url')
ただし、ユーザーにメッセージを表示し、リダイレクトする前にそれを読む時間を与えたいと思います。メタなしでそれを行う方法はありますか?
メタリフレッシュタグの使用に問題はありません。
<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で動作しませんでした。
本当に最善の方法はheader("Refresh: 10;url=../index.php");
であると思います。私の仕事でやったことと同じです。
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>