2017-06-05 9 views
-1

こんにちは、私はプロジェクトを作ると私は休暇の問題があります。私のインデックスページで iは、動的レイアウトがあります。デフォルトでPHPヘッダーの競合

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="index2.css"> 
</head> 
<body class="news"> 
    <header> 
    <div class="nav"> 
     <ul> 
     <li class="home"><a href="index2.php?page=welcome">Home</a></li> 
     <li class="logare"><a class="active" a href="index2.php?page=admin_login">Admin</a></li> 
     <li class="registration"><a href="index2.php?page=registration">Registration</a></li> 
     <li class="produse"><a href="index2.php?page=produse">Produse</a></li> 
     </ul> 
    </div> 
    </header> 

    <div id="content"> 
<?php 
$p=$_GET['page']; 

switch($p){ 
     case "welcome": 
      include('welcome.php'); 
      break; 
     case "admin_login": 
      include('Admin_login.php'); 
      break; 
     case "registration": 
      include('Registration.php'); 
      break; 
     case "produse": 
      include('produse.php'); 
      break; 
     default: 
      include('welcome.php'); 
      break; 
}?> 
</div> 


</body> 
</html> 

、ウェルカム場合、それを; sが私のwelcome.phpページに私をリダイレクト:

<?php 
    session_start(); 

if(!$_SESSION['email']) 
    { 

     header("Location: login.php");//redirect to login page to secure the welcome page without login access. 
    } 

    ?> 

<html> 
<head> 

<title> 
Registration 
</title> 
</head> 

<body> 
<h1>Welcome</h1><br> 
<?php 
    echo $_SESSION['email']; 
    ?> 


<h1><a href="logout.php">Logout here</a> </h1> 


</body> 

</html> 

私は歓迎でリダイレクトを持っているので。 PHPも、私のヘッダーは動的レイアウトから読み込まれていません。私はこれを修復することができますが、まだログインするようにリダイレクトしていますか?

+0

私はあなたがこれを達成するために '出力バッファリング'を使うことができると思います。 – RamRaider

+0

http://php.net/manual/en/function.error-reporting.phpは何を返すのですか?ヘッダーが送信されましたか?ヘッダーにもexitを追加する必要があります。 –

+0

ロジックを再配置する必要があります。既にあなたはページ(index.php)にコンテンツを送っているので、ヘッダを(welcome.phpで)設定しようとしています。また、2つの ''タグと2つの ''タグなども定義しているので、無効なHTMLです。ナビゲーションファイルを作成し、そのファイルをwelcome.phpと他のページに含めます。 –

答えて

0

PHPヘッダーの競合を避けるために、代わりにJSリダイレクトを使用することをお勧めします。私があなたのために変更した以下のコードを見てください。

<?php 
    session_start(); 

    if(!$_SESSION['email']) { 
     ?> 
      <script language="javascript" type="text/javascript"> 
       alert("User not logged in."); 
       window.location = 'login.php'; 
      </script> 
     <?php 
    }  
?> 

これが役立ちます。

+1

私はこの解決策が個人的に好きではありません。 JavaScriptを無効にしているユーザーは影響を受けません。 –

+0

ありがとうございますが、ログインページにまだ私はヘッダーを見ることができません –