厳密に言えば、出力も表示されたヘッダーを持つページからリダイレクトすることはできません。ブラウザに出力を送信することも、リダイレクトヘッダーを送信することもできますが、両方を送信することはできません。
何かを表示したい場合は、数秒待ってからリダイレクトを送信すると、JavaScriptでクライアント側のリダイレクトを使用することになります。このような何か:
<html>
<head>
<script type="text/javascript">
setTimeout(function() {
location.href='/newpage.html',
}, 5000);
</script>
<body>
successfully inserted data to database.
</body>
</html>
これはページをリダイレクトsetTimeout()
で関数を実行し、5秒待って、<body>
に何レンダリングされます。
技術的には、そうではありません。5秒カウンタは、ページの読み込みが完了したかどうかにかかわらずJSが実行されるとすぐに開始されます。
あなたはあなたではなく、仲介のページへリダイレクトするよりから呼び出され、同じページに通知を表示したいしている場合は、セッション値を設定する必要がありますあなたのページに続いて
$_SESSION['note'] = 'data_saved';
を通知を表示したい:
if (isset($_SESSION['note']) && $_SESSION['note'] == 'data_saved') {
echo "successfully inserted data to database.\n";
unset($_SESSION['note']);
}
これは、あなたが$_SESSION
を参照するすべてのページの上部にsession_start()
を実行することが必要になります。
代わりにDBを処理するスクリプトにPOSTするのにjavascriptを使用できますか? – StaticBeagle
あなたはそれにパラメータを渡すことができます –
リダイレクトの前に '$ SESSION'に変数を設定します。その後、新しい場所でこれにアクセスしてください –