2013-07-05 71 views
1

我正在尋找這樣的事情:保護的內容在PHP

<?php  
if($user_authorized == 1){ 
//some HTML/PHP code is VISIBLE to user 
} 
else{ 
echo"You are not authorized!"; 
} 
?> 

現在我想對用戶可見的數據需要隱私的極端水平(這是一些法律內容)。如果我使用HTML,即使用戶未被授權,它也會顯示在源代碼中。如果我使用PHP,我幾乎不可能格式化內容,因爲它需要在幾個地方等<h1><h2>等...

是否有可能我將數據保存在數據庫中,然後檢索它只有當用戶被授權?如果是這樣,我會有格式化選項嗎?

我還有什麼其他選擇可以實現?

+1

你需要學習如何將你的php代碼從你的html模板中分離出來。我建議閱讀MVC模式,這很常見。 – Maerlyn

+0

爲什麼「幾乎不可能格式化內容」?只需使用heredoc或類似的定義一個你的內容的字符串,然後回顯它;或'?>'退出PHP,顯示你的格式化內容,然後'<?php'返回到PHP關閉'}' –

+0

你可以在PHP本身做到這一點,因爲PHP可以提供HTML ..你是發送用戶訪問此頁面還是在檢查身​​份驗證後是否動態更新頁面內容和結果? – 2013-07-05 23:04:14

回答

3

好的,從您的意見看來,你在這裏面臨的唯一問題是格式化,並通過@馬克·貝克的建議,你應該用定界符的格式..

<?php  
$authenticatedText = <<<HTML 
//as much HTML as you want here.. you can mix php variables as well by just saying $variable name 
<table></table> 
HTML; 

if($user_authorized == 1){ 
//some HTML/PHP code is VISIBLE to user 
echo $authenticatedText; 
} 
else{ 
echo"You are not authorized!"; 
} 
?> 

您也可以看看在php中的模板系統,例如smarty模板引擎。

+0

非常棒!它爲我工作!萬分感謝!!! :) – user2553342

2

我不認爲你真的有問題。 PHP只會傳遞真實結果中的代碼。使用HTML或者回聲出HTML代碼或(更簡單)逃出你的HTML:

<?php  
if($user_authorized == 1){ 
//some HTML/PHP code is VISIBLE to user 
echo "<table ...>"; 
echo "<tr><td><h1></h1></td></tr>"; // etc. OR simply escape out to the html as follows: 
?> 
<table ...> 
<tr><td><h1></h1></td></tr> 
</table> 
<?php 
} 
else{ 
echo"You are not authorized!"; 
} 
?> 

客戶端(瀏覽器)只能臨危什麼PHP發送。所以用戶只會看到他們的代碼。

+0

我知道這個親愛的,但格式不解決這個解決方案... – user2553342

+0

你是什麼意思'格式化沒有被解決?您可以完全控制格式 –

+0

如果用戶未獲得授權,HTML部分(在php標籤之外)將出現在源代碼中。是對的嗎? – user2553342