2016-12-04 49 views
0

我正在研究一个简单的报表查看器,其中PDF存储在一个文件夹中显示在表中,并且可以在用户单击时打开。那东西工作正常。我还有一个上传功能,可以让用户将文件上传到相应的文件夹,以后可以显示在表格中。我也可以通过在表格中的文件名前面显示删除链接来删除文件。如何在管理员登录时启用PHP中的删除按钮但不是查看器(普通用户)?

起初,我想只有一个用户可以做所有的事情。现在,我们只希望在用户名为'Admin'时显示“删除”链接和“上传”菜单。我们不想使用任何数据库,因为数据并没有如此分类,我们很好地使用基于脚本的解决方案。但是,我无法弄清楚如何为管理员启用删除和上传功能。我使用的代码附加如下:

从login.php中

<?php session_start(); /* Starts the session */ 

    /* Check Login form submitted */ 
    if(isset($_POST['Submit'])){ 
     /* Define username and associated password array */ 
     $logins = array('reader' => '123456','admin' => '654321','username2' => 'password2'); 


     /* Check and assign submitted Username and Password to new variable */ 
     $Username = isset($_POST['Username']) ? $_POST['Username'] : ''; 
     $Password = isset($_POST['Password']) ? $_POST['Password'] : ''; 

     /* Check Username and Password existence in defined array */ 
     if (isset($logins[$Username]) && $logins[$Username] == $Password){ 
      /* Success: Set session variables and redirect to Protected page */ 
      $_SESSION['UserData']['Username']=$logins[$Username]; 
      header("location:index.php"); 
      exit; 
     } else { 
      /*Unsuccessful attempt: Set error message */ 
      $msg="<span style='color:red'>Invalid Login Details</span>"; 
     } 
    } 
?> 

每个页面之前,我们插入此代码:

<?php session_start(); /* Starts the session */ 
if(!isset($_SESSION['UserData']['Username'])){ 
    header("location:login.php"); 
    exit; 
} 
?> 

而这正是我们正在做表内显示的文件列表和删除它们的链接:

foreach($files as $file) 
     { 
        if(isset($_GET['delete'])) 
        { 
        unlink($file); 
        break; 
        //a better approach for deletion will be appreciated 
        } 

      echo'<tr><td><a href="ViewerJS/#.'.$file.'" target="_blank">'.returnFile($file).'</a></td> 
      <td><a href="'.$file.'">Download</a></td> 
      <td><a href="?delete=1">Delete</a></td> 

      </tr>'; 
     } 
+0

根据你的代码'如果($ _ SESSION [ '的UserData'] [ '用户名'] == '管理员'){回声 “​​Delete”;}' –

+0

笔记,它不工作...它不显示另一个单元格需要删除链接.. –

+0

echoing $ _SESSION ['UserData'] ['Username'];给我654321,这是Admin的密码。 所以它不完全是用户名,它会比较,大声笑,这很有趣:D –

回答

1

它在我将login.php中的$_SESSION['UserData']['Username']=$logins[$Username];更改为$_SESSION['UserData']['Username']=$Username;时起作用。

最后加入if($_SESSION['UserData']['Username'] == 'admin')之前我想要显示的任何代码只有当管理员登录。谢谢大家。

相关问题