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

Php 更好的单页身份验证方法的基本方法,php,jquery,css,Php,Jquery,Css,嘿,我想有一个像www.example.com这样的页面,它在同一个首页上为公众和经过身份验证的用户工作,就像facebook的首页一样,对公众和他们的用户都很好。所以我的问题是我应该怎么做,我的意思是我可以在头版做类似的事情,例如 <div id="user_content">...</div> <div id="public_content">...</div> 。。。 ... 如果设置了$\u SESSION[]或现在设置了$\u SE

嘿,我想有一个像www.example.com这样的页面,它在同一个首页上为公众和经过身份验证的用户工作,就像facebook的首页一样,对公众和他们的用户都很好。所以我的问题是我应该怎么做,我的意思是我可以在头版做类似的事情,例如

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

<div id="public_content">...</div>
。。。
...
如果设置了$\u SESSION[]或现在设置了$\u SESSION[],则让他们显示“none”或“block”,那么在这种情况下,我的潜在用户的内容在源代码中仍然可见,我想在他们注册之前对他们隐藏它,我应该如何使其工作


如有任何建议或帮助,将不胜感激。谢谢。

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

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


我不建议使用显示:无;要向公众隐藏用户内容,任何人都可以检查页面以访问受保护的内容。

也许最好让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.
    ";
}

您只需要研究如何对用户进行身份验证。。。如果没有更多信息,就很难知道要给出的最佳建议。

您可以尝试使用模板化的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
)。

如果我阅读源代码,我会看到display:none元素以及display:block内容。您只需要使用PHP进行测试。我建议使用PHP根据用户是否经过身份验证有条件地生成HTML内容。您可能想做一些研究并尝试一下,然后让我们知道您尝试了什么以及出现了什么问题。您可以,但没有什么可以阻止未经验证的用户手动显示用户内容。@showdev生成动态HTML更好,对吗?正如其他人在这里提到的,使用CSS隐藏内容是不安全的,因为它会发生“客户端”--任何人都可以在他们的浏览器中操作您的代码并查看隐藏的内容。PHPs生成适当的内容发生在“服务器端”,在用户下载任何内容之前,因此您想对他们隐藏的内容将永远不会被下载。这就是你想要的。是的,谢谢,或者在不同的php文件中保留不同的内容,以便更容易管理,并基于if语句包含()适当的文件。