2015-11-14 65 views
0

我有登录页面和用户页面,用户使用正确的用户名和密码登录后,会进入用户页面。 用户页面由用户列表组成,并在每个用户行旁边都有一个“编辑用户”按钮。例如,在这里的截图 - > http://i.stack.imgur.com/K3qxi.pngPHP - 根据用户级别隐藏/显示内容

因此,基于用户级别,如果用户级别=用户(其具有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> 
+0

它是如何不工作?你有错误吗? – Andrius

+1

你应该使用PHP而不是JavaScript来隐藏它,否则你仍然可以在源代码中找到它。您还应该保护编辑功能和接收表单的脚本,因为即使用户没有该按钮,他们仍然可以向该页面发送请求(如果他们知道URL和表单)。 – insertusernamehere

回答

-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> 
+0

其工作,谢谢! :) –

0

,你可以用它代替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> 
+0

其仍然不工作,但谢谢btw :) –

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> 
0

我认为你想限制只有“用户”权限的用户不能编辑数据?

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

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(); 
} 
+0

我试过这种方法,但有一个错误说$ userlvlpermission未定义。顺便说一句,如果我检查编辑页面的用户会话,如果用户级别是用户,如何禁用表单?我可以让表单禁用吗? –

+0

我想你有一个登录页面。您可以重定向登录页面或回显“无权编辑”并退出脚本,请参阅编辑代码 –

+0

好的,我会尝试。谢谢:) –