-1

嘿,我想要一个像 www.example.com 这样的页面,它适用于同一首页上的公共用户和经过身份验证的用户,就像 facebook 的首页一样,它适用于公众及其用户。所以我的问题是我应该怎么做,我的意思是我可以在首页上做这样的事情,例如。

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

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

如果设置了 $_SESSION[] 或现在让它们显示“无”或“阻止”,那么在这种情况下,我的潜在用户的内容仍然会在源代码中可见,我想在人们注册之前将其隐藏,如何我应该让它工作吗?

任何建议或帮助将不胜感激。谢谢你。

4

3 回答 3

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

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

于 2013-10-09T17:06:33.503 回答
1

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

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

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

于 2013-10-09T17:05:09.693 回答
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)。

于 2013-10-09T17:06:39.623 回答