0

如果用户登录,我已经制作了以下脚本来显示目录中的文件:

<?php
session_start();
require_once("path/file.php");

if (!empty($_SESSION[username]))
{echo "You <b>$_SESSION[username]</b> are registered.";

$dirPath = dir('includes/path/');
$docArray = array();
while (($file = $dirPath->read()) !== false)
{
  if ((substr($file, -3)=="pdf") || (substr($file, -3)=="doc"))
  {
     $docArray[ ] = trim($file);
  }
}
$dirPath->close();
sort($docArray);
$c = count($docArray);
foreach($docArray as $filename)
{
    echo "<div><a href=\"./includes/path/$filename\">Download '$filename'</a></div>";
    echo "<br/>";
} 
 include('logout.php');
}

else
{echo "somethingsomething";

include('login.php');
}
?>

在成员表中有两列 MSV 和 LTP,可能的值为 0、1。我还必须到目录 /path/LTP 和 /path/MSV。

我需要在脚本中添加一个内容,即如果用户拥有 LTP 或/和 MSV 的权限,文件将相应地显示。

4

2 回答 2

0

为用户查询数据库,并在获取行后构建逻辑。

$username = mysqli_real_escape_string($con, $_SESSION['username']);
$query = "SELECT `LTP`, `MSV` FROM `members` WHERE `username`='".$username."'";
$data = mysqli_query($con, $query) or die(mysqli_error($con));
$row = mysqli_fetch_array($data);

if ($row['MSV'] == '1') {
    //provide access to MSV files here.
}

if ($row['LTP'] == '1') {
    //provide access to LTP files here.
}

请注意,该die语句用于调试,对于生产使用来说不够优雅。

于 2013-08-29T17:22:14.810 回答
0

您将需要存储到$_SESSION字段的值中,LTPMSV在您用来读取这些文件夹的 php 文件中尝试这样的事情

读取 LTP 文件夹

if(!empty($_SESSION[LTP])){
 //code to read LTP folder
}else{
//Cannot read LTP folder 
}

读取 MSV 文件夹

if(!empty($_SESSION[MSV])){
//code to read MSV folder
}else{
//Cannot read MSV folder
}

假设0是拒绝访问并1授予读取权限

于 2013-08-29T17:09:15.153 回答