2013-03-28 50 views
0

我已經創建了我的頁面,並試圖在授予用戶對頁面的訪問權限之前對用戶進行驗證。我的問題是,我使用像這樣的方法:驗證用戶和顯示頁面

if($_SESSION['username']){ 
echo 'PAGE CONTENT HERE'; 

}else{ 
SEND BACK TO LOGIN PAGE 
} 

這對於我的一些網頁用PHP從我的數據庫能正常工作,但我的主網頁上填入選擇框,當我使用梅託德高於一切的選項顯示在選擇之外(工作正常,如果我不回顯頁面)

我錯過了一個小把戲嗎?

+0

請分享一些更多的代碼,它很難從上面的代碼片斷中瞭解到。 –

回答

0

請嘗試使用此功能。

session_start(); 

if(empty($_SESSION['username'])){ 
    header("Location: page-to-redirect.php"); 
} 

//Rest of the code.... 
0

不要使用回聲,請嘗試使用替代語法PHP的if/else:http://www.php.net/manual/en/control-structures.alternative-syntax.php

我用這個和它沒有在我的任何網頁內容或腳本的方式獲得。

<?php if(conditional): ?> 
<p>plain html and what not here</p> 
<?php else: ?> 
<a href="#">more html here</a> 
<?php endif; ?> 

或使用標題(「Location:redirect.php」)重定向;基於會話檢查代碼。

+0

smarty模板非常適合分隔html和php代碼 –

+0

歡呼傢伙,codebauss這正是我所期待的。您提到的重定向已經在我的應用程序中使用,但用戶只需要知道頁面的名稱並直接進入? – Deano

+0

即使他們直接轉到頁面的名稱,您的if條件是確保他們有一個有效的會話。所以你想要做的就是實現一個過期,或者你可以使用$ _SERVER ['HTTP_REFERER']來確保請求只來自你的登錄頁面或讓你的登錄頁面填充另一個變量,無論是$ _SERVER還是你如果你想要做到這一點,就創建一個健康檢查。希望這可以幫助你。 – codebauss