簡體   English   中英

PHP-根據用戶級別隱藏/顯示內容

[英]PHP - Hide/Show Content based on User Level

我有登錄頁面和用戶頁面,用正確的用戶名和密碼登錄后,它將進入用戶頁面。 用戶頁面由用戶列表組成,每個用戶行旁邊都有一個“編輯用戶”按鈕。 例如,在此處的屏幕快照-> http://i.stack.imgur.com/K3qxi.png

因此,基於用戶級別,如果用戶級別=用戶(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>

您可以使用類而不是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>

正如@insertusername指出的那樣,您應該使用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>

我假設您想限制僅具有“用戶”特權的用戶無法編輯數據?

您可能要考慮嘗試此操作,因為我認為它更直接,更簡單?

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;}?>

確保還檢查了編輯頁面的用戶會話,以防他們知道確切的URL。

在編輯頁面

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

這是一個簡單的解決方案。

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM