2016-09-12 6 views
0

私はそうのような実際のページロードする前に、「header.phpのを」と呼んでINDEXがあります。リダイレクト(ヘッダーは既に送信済み)。彼らが送られてきたことは分かっていますが、これをどうやって整理して意味をなすでしょうか?

include 'includes/header.php'; 

    if(isset($_GET['page'])) { 
     include'includes/pages/page.php'; 
    } 

そしてを、このページでは、私は、ユーザーが「新しいページを追加」することができるようにしたいです(index.php?add_page = 1)から「作成したばかりのページを編集する」(index.php?edit_page =)にリダイレクトします。

if(isset($_POST['add_page']) && $_POST['add_page'] == 1) { 
    if(!$add_user['error']) { 
     //header("Location: ".$page_url); 
     //echo "<script type='text/javascript'>document.location.href='{$page_url}';</script>"; 

    } 
} 

ヘッダーが既に送信されているため( 'Location: ")'は失敗します。しかし、この投稿をリダイレクトしてヘッダをスキップするにはどうすればいいですか?header.phpにこのコードを直接入れずに編集ページにリダイレクトしていますか?

+0

最初の行にob_start()を使用し、ヘッダーの位置の前にob_end_clean()を使用し、ヘッダーの後にdie()を忘れないでください。 – CatalinB

答えて

1

クイック回答:代わりにjavascriptを使用してください。
ヘッダー(場所:yourUrlHere);.

echo "<script type='text/javascript'>document.location.href='yourUrlHere';</script>"; 

あなたのリダイレクトでも、クライアントは、JavaScriptの無効化を持つメタを使用起こるのだろうということを確認したい場合は、次の

echo '<meta http-equiv="refresh" content="0;url=yourUrlHere">'; 

は、「0」は、秒単位で、前にそれが起こるのだろうリダイレクト遅延であります。

関連する問題