PHP中受保护的内容

时间:2013-07-05 23:01:09

标签: php html

我正在寻找类似的东西:

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

现在,我想让用户看到的数据需要极高的隐私级别(这是一些合法的内容)。如果我使用HTML,即使用户未经授权,它也会显示在源代码中。如果我使用PHP,我几乎不可能格式化内容,因为它需要<h1><h2>在几个地方等等...

是否可以将数据保存在数据库中,然后仅在用户获得授权时才检索数据?如果是这样,我会有格式化选项吗?

我还有哪些其他方法可以实现同样的目标?

2 个答案:

答案 0 :(得分:3)

好的,从您的评论看来,您在这里面临的唯一问题是格式化,并且正如@Mark Ba​​ker建议的那样,您应该使用heredoc进行格式化。

<?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模板引擎。

答案 1 :(得分: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发送的内容。因此,用户只能看到他们想要的代码。