PHP - 根据用户级别隐藏/显示内容

时间:2015-11-14 08:13:11

标签: php jquery mysql

我有登录页面和用户页面,用户使用正确的用户名和密码登录后,将进入用户页面。 用户页面包含一个用户列表表,并具有“编辑用户”和“用户列表”。每个用户行旁边的按钮。例如,在此处的屏幕截图中 - > http://i.stack.imgur.com/K3qxi.png

因此,根据用户级别,如果用户级别= User(ID = 4),我想隐藏编辑按钮。到目前为止我所尝试过的是这样但它不起作用。我已导入会话代码和所有查询。下面这段代码只是我想要做的一部分。

include_once("session.php");
if($_SESSION['userlvl']==4){
    echo "USER";
?>

<script>
$document.(ready(function){
  $(#editbutton).hide();
});
</script>

<?php
}
?>


<a id="editbutton"><img src="Edit.png"/></a>

4 个答案:

答案 0 :(得分:0)

您可以使用class而不是Id

include_once("session.php");
if($_SESSION['userlvl']==4){
    echo "USER";
?>

<script>
$document.(ready(function){
  $(".editbutton").hide();
});
</script>

<?php
}
?>


<a class="editbutton"><img src="Edit.png"/></a>

答案 1 :(得分:0)

正如@insertusernamehere所指出的那样,您应该使用PHP来控制写入页面的内容,具体取决于用户的访问级别 - 仅仅隐藏来自视图的内容只是在寻找麻烦,因为它很容易找到在代码视图中查找。以下只是一个如何执行此操作的示例。

<?php
    include_once("session.php");
?>
<html>
    <head>
        <title>Restrict content based upon user level example</title>
        <?php
            if( isset( $_SESSION['userlvl'] ) ){

                $level=intval( $_SESSION['userlvl'] );
                /*
                    If you have javascript functions that actually submit the forms or
                    interact somehow with the data that are to be restricted to particular
                    levels of user, generate the code for that level only.
                */
                switch( $level ){
                    case 1:
                        /* Basic user */
                        echo "
                            <script id='user' type='text/javascript'>
                                function view_record(){
                                    alert('hello world');
                                }
                            </script>
                        ";
                    break;
                    case 2:
                        /* Superuser */
                    break;

                    case 3:
                    case 4:
                        /* Manager & Admin level users ? */
                        echo "
                        <script id='admin' type='text/javascript'>
                            function delete_all_users(){

                            }
                            function drop_tables(){

                            }
                            function drop_database(){

                            }
                            function edit_record(e){
                                alert(e+' edit record') 
                            }
                            function delete_record(e){
                                alert(e+' delete record')   
                            }
                        </script>
                        ";
                    break;  
                }
            }
        ?>
    </head>
    <body>
        <table>
        <?php
            /* Assuming you use php to generate the table: pseudo style code */
            while( $rs=$result->fetch() ){
                $editbttn='';
                $deletebttn='';

                if( in_array( $level, array( 3,4 ) ) ){
                    /* Admin & manager */
                    $editbttn="<a class='editbutton' onclick='edit_record(event)'><img src='Edit.png'/></a>";
                    $deletebttn="<a class='deletebutton' onclick='delete_record(event)'><img src='Delete.png'/></a>";
                }

                echo "
                    <tr>
                        <td>DATA</td>
                        <td>DATA</td>
                        <td>DATA</td>
                        <td>$editbttn</td>
                        <td>$deletebttn</td>
                    </tr>";
            }
        ?>
        </table>
    </body>
</html>

答案 2 :(得分:0)

我认为你想限制只有&#34; User&#34;的用户?不能编辑数据?

你可能想考虑尝试这个,因为我认为它更直接和简单?

session_start();
 if($_SESSION['userlvl'] == 4) {
    echo "USER";
    }else{
    $userlvlpermission = '<a id="editbutton"><img src="Edit.png"></a>';
    }
 //At where you wanted to place the "editbutton"
 <?php if($userlvlpermission){echo $userlvlpermission;}?>

请确保您检查编辑页面的用户会话,以防他们知道确切的网址。

AT编辑页面

<?php
session_start();
if ($_SESSION['userlvl'] = 4){
echo "NO PERMISSION";
echo "header('Refresh: 3;url=page.php')";
exit();
}

答案 3 :(得分:-1)

这是一个简单的解决方案。

include_once("session.php");
if ($_SESSION['userlvl'] == 4) {
  $hideme = 'display:none;'
} else {
  $hideme = '';
} ?>


< a id = "editbutton"
style = "<?php echo $hideme; ?>" > < img src = "Edit.png" / > < /a>