更好的单页面身份验证方法的基本方法

时间:2013-10-09 17:02:14

标签: php jquery css

嘿我想拥有一个像www.example.com这样的页面,它适用于同一首页上的公共用户和经过身份验证的用户,就像facebook的首页一样,对于公众和公众来说效果很好用户。所以我的问题应该怎么做,我的意思是我可以在头版上做这样的事情,例如

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

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

并让它们显示“没有”#39;或者&#39;阻止&#39;如果$ _SESSION []已设置或现在,那么在这种情况下我的潜在用户的内容仍然可以在源代码中看到,我想将其隐藏起来直到他们注册,我应该如何使其工作? / p>

任何建议或帮助都将受到高度赞赏。谢谢。

3 个答案:

答案 0 :(得分:1)

您可以检查您的用户是否已登录,如果是,则显示不同的内容。假设您的登录用户具有userid会话变量,它将如下所示:

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

我不建议使用display:none;为了隐藏公众的用户内容,任何人都可以只检查页面以访问受保护的内容。

答案 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.
    ";
}

您只需要了解如何对用户进行身份验证......如果没有更多信息,很难知道最佳建议。

答案 2 :(得分:0)

您可以尝试使用模板化if语法,根据用户是否存在会话来发送不同的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)。