2013-10-09 46 views
-1

嘿,我想擁有一個像www.example.com這樣的網頁,它既適用於公共網站也適用於身份認證的用戶,就像Facebook的首頁一樣,公衆和他們的用戶。所以我的問題我應該怎麼做,我的意思是我可以在頭版上做這樣的事情,例如。更好的單頁面認證方式的基本方法

<div id="user_content">...</div> 

<div id="public_content">...</div> 

,並使其顯示「無」或「塊」,如果$ _SESSION []時,還是現在,以及在這種情況下,我的潛在用戶的內容仍然會在源代碼中可見,我想從人隱藏直到他們簽署了,我應該如何使它工作?

任何建議或幫助將不勝感激。謝謝。

+0

如果我讀了源代碼,我會看到display:none元素以及display:block內容。你只需要用PHP進行測試。 – idmean

+2

我建議使用PHP根據用戶是否通過身份驗證來有條件地生成HTML內容。您可能需要做一些調查並嘗試一下,然後讓我們知道您嘗試了什麼以及哪裏出了問題。 – showdev

+1

你可以,但沒有任何東西阻止未經身份驗證的用戶手動顯示用戶內容。 –

回答

1

也許最好讓PHP根據它們是否已登錄顯示不同的內容,而不是在兩種情況下都將內容發送到瀏覽器。

if($_SESSION['authenticated']){ 
    echo " 
     This is the content an authenticated user would see. 
    "; 
} 
else{ 
    echo " 
     This is the content a regular visitor would see. 
    "; 
} 

你只需要努力如何驗證用戶...沒有更多的信息,很難知道最好的建議給予。

1

您可以檢查您的用戶是否已登錄,如果有,顯示不同的內容。假設你的登錄用戶有一個用戶ID會話變量,它看起來像這樣:

<?php if (isset($_SESSION['userid'])) : ?> 
    <div> 
      <!-- user content --> 
    </div> 
<?php else : ?> 
    <div> 
      <!-- public content --> 
    </div> 
<?php endif; ?> 

我不會推薦使用display:none;爲了隱藏公衆的用戶內容,任何人都可以檢查該頁面以訪問受保護的內容。

+1

是的你的權利,謝謝 – Abhinav

+0

或者在不同的php文件中保留不同的內容,以便更容易管理和包含()適當的基於if語句的文件。 – carter

0

您可以嘗試使用,如果語法模板,基於會話是否是本作的用戶發送不同的HTML:

<?php if(isset($_SESSION[])): ?> 
<html> 
    ... 
    <div id="loggedIn">Logged in users see this</div> 
    ... 
</html> 
<?php else: ?> 
<html> 
    ... 
    <div id="notLoggedIn">Not logged in users see this</div> 
    ... 
</html> 
<?php endif; ?> 

這種方法是在服務器端使用PHP和避免處理在客戶端顯示HTML的問題(使用display:none)。