我正在研究一个简单的报表查看器,其中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>';
}
根据你的代码'如果($ _ SESSION [ '的UserData'] [ '用户名'] == '管理员'){回声 “Delete”;}' –
笔记,它不工作...它不显示另一个单元格需要删除链接.. –
echoing $ _SESSION ['UserData'] ['Username'];给我654321,这是Admin的密码。 所以它不完全是用户名,它会比较,大声笑,这很有趣:D –