限制成员的某些网站功能

时间:2014-11-05 19:00:21

标签: javascript php html5 session cookies

我正在开发一个网站,其中包含一系列可供所有人使用的核心功能,以及为网站成员保留的一组特殊功能。例如,所有用户都可以查看帖子,但只有成员才能包含标签,分享帖子等。就html输出而言,额外的功能只会在帖子中产生一些额外的图标。我正在寻找的是关于为会员保留功能的最佳方式的指导。例如,我一直在考虑的两个选项是:

方法1  1.为非成员创建站点版本,为成员创建版本。成员的版本将包括整个非成员站点以及实现额外功能所需的附加代码(html,css,js等)。然后,Cookie和/或会话将用于检查用户的状态,并将其重定向到正确的站点版本。

方法2  2.有一个版本。默认情况下会隐藏额外的功能(即少量额外的图标),并且只有在用户登录时才会显示。(这可能需要一些js,我并不担心用户禁用)。

搜索此类问题会返回一系列有关用户管理级别,权限和wordpress插件的解决方案。如果您有任何其他想法,这些都不是真的适用,真棒!如果没有,我非常感谢您对上述方法的反馈。提前谢谢了。

1 个答案:

答案 0 :(得分:0)

只是为了说明,在您的index.php页面或任何页面上进行测试,请将此代码粘贴到最顶层并使用链接在会话之间切换:

<?php session_start(); ?>

<a href="?admin=1">Admin User</a>
<a href="?admin=0">Not Admin</a>
<a href="?admin=base">Not logged in</a>

<?php
if(isset($_GET['admin']) && $_GET['admin'] == 1)
    $_SESSION['admin'] = true;
elseif(isset($_GET['admin']) && $_GET['admin'] == 0)
    $_SESSION['admin'] = false;

if(isset($_GET['admin']) && $_GET['admin'] == 'base')
      if(isset($_SESSION['admin'])) unset($_SESSION['admin']);

if(isset($_SESSION['admin']) && $_SESSION['admin'] == true) { ?>
    <p>You are admin and this is your image</p>
    <img src="http://s.hswstatic.com/gif/african-tree-frog.jpg" />
<?php } elseif(isset($_SESSION['admin']) && $_SESSION['admin'] == false) { ?>
    <p>You are NOT admin but logged in. This is your image.</p>
    <img src="http://news.nationalgeographic.com/news/2005/10/images/051007_robot_fish.jpg" />
<?php }

    if(!isset($_SESSION['admin'])) { ?>
    <h2>You are not logged in!</h2>
    <?php } ?>

<p>This is a site about animals. Everyone can read this.</p>
<?php session_destroy(); ?>