2014-07-22 50 views
-6

我試圖使用includes來根據用戶是否登錄創建頁面標題,但雖然顯示了正確的標題,但頁面內容的其餘部分卻沒有。爲什麼我的頁面在包含後忽略其餘內容?

<div class="header"> 
<?php 
if ($login->isUserLoggedIn()) { 
    include("views/logged_in.php"); 
    exit; 
} else { 
    include("views/not_loggedin.php"); 
    exit; 
} 
?> 
</div> 

//Rest of page content goes here 

如果我把這個代碼頁面內容後,就基本說明了像一個頁腳,一切工作罰款,但不看我所希望的方式。

+3

因爲你聲明'exit;'!從文檔[退出 - 輸出消息並終止當前的腳本](http://php.net/manual/en/function.exit.php) – Sean

+0

爲什麼我的代碼正確地執行我編碼它做的事情? –

回答

0

您遇到的問題是您對exit()函數進行的調用,這個函數是PHP die()函數的別名停靠任何進一步的輸出瀏覽器,導致文件的底部不被處理。

如果您在包含之後擺脫了退出函數調用,那麼下面的頁面應該正常渲染。

您可能已被瀏覽器中呈現的結束標記拋出,php將不會處理這個,但大多數現代瀏覽器都足夠聰明,以實現結束標記丟失並將其放置在那裏。

+0

謝謝,我認爲出口阻止了它通過,但我想這隻適用於如果我用案例,而不是一個if/else。 – taiyoko

+0

正確,使用switch語句可以使用'break'以防止案件通過。 – ONDoubleB

0

移除離開

if ($login->isUserLoggedIn()) { 
include("views/logged_in.php"); 
} else { 
include("views/not_loggedin.php"); 
} 
?> 
相關問題