Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076

Простенький файловый менеджер

14.01.2017, 17:12. Показов 2853. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поругайте, что неправильно, что может не так делается...
Ограничил доступ вверх - в пределах директории сайта. Результат мне кажется ооочень громоздким... И собственно, для навигации "назад" я разбираю строку запроса URL, а если я захочу ограничеть доступ дальше корня сайта - нужно делать конечную разрешенную точку доступа стартовой страницей или не обязательно? Пытался сначала брать директорию из пути файловой системы и применять ее в создаваемых ссылках, но что-то запутался...
Пока что вот такой вариант:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
  error_reporting(-1);
  header('Content-Type: text/html; charset=utf-8');
  $dir  = dirname(__FILE__);  
  $query = 'index.php?aim=';     
  $real = (isset($_GET['aim']))? realpath($_GET['aim']) : $dir;
  $ref = (isset($_GET['aim'])) ? scandir($_GET['aim']) : scandir('.');       
?>
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>File Manager</title>
  <link href="main.css" rel="stylesheet" type="text/css">
</head>
<body>
  <div class="main">
    <div class="info">
      <div class="wrap">
        <?php
        echo $real;
        ?>
      </div>
    </div>
      <?php             
        for ($i = 1; $i < count($ref); $i++) {
          if (isset($_SERVER['QUERY_STRING']) && strchr($_SERVER['QUERY_STRING'] , '..')) {
            echo '<div class="warning">ILLEGAL ADDRESS!<br><br><a href="'.$_SERVER['PHP_SELF'].'">Back to site root</a></div>';
            exit();
          }
          else
            if (is_dir($dir.'/'.(!isset($_GET['aim'])? '' : $_GET['aim']).'/'.$ref[$i])) {  
              echo '<a href="';
              if (isset($_GET['aim'])) {
                if ($ref[$i] == '..') {                  
                  $pos = strrpos($_SERVER['QUERY_STRING'], '/');
                  if (!$pos) {
                    echo 'index.php';
                  }
                  else {
                    $arg1 = substr($_SERVER['QUERY_STRING'], 0, $pos);                    
                    $argstop = substr($arg1, strpos($arg1, '=') + 1);
                    echo $query.$argstop;
                  }
                }
                else
                  echo $query.$_GET['aim'].'/'.$ref[$i];
              }
              if (!isset($_GET['aim'])) {
                echo ($ref[$i] == '..') ? $_SERVER['REQUEST_URI'] : $query.$ref[$i];
              }
            echo '">' .(($ref[$i] != '..')? '🗀' : '⮌').' '.$ref[$i].'</a>'.'<br>';
            }
        else echo '🗎 '.$ref[$i].'<br>';
        }
        echo '<br><div class="back"><a href="'.$_SERVER['PHP_SELF'].'">Back to site root</a></div>';
      ?>
    </div>
  </body>
</html>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
@charset "utf-8";
/* CSS Document */
 
 
.main{
    position: relative;
    text-align: left;
    height: 900px;  
    width: 30%;
    border: 3px double black;
    margin: 15px auto;
    padding-left: 20px;
    padding-top: 10px;
}
.wrap {
    position:relative; 
    left:50%;
    top: -22px;  
    background-color: white; 
    border: 1px solid black;
}
.info{  
    height: 20px;   
    position: absolute; 
    right: 50%;
    text-align: center;
    z-index: 999;
}
a {
    text-decoration: none;
}
.warning {
    width: 100%;
    position: absolute;
    top: 40%;
    text-align: center;
    color: red;
    font-size: 20px;
}
.back {
    font-size: 18px;
    text-decoration: underline;
}

пока это только навигатор по директориям
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2017, 17:12
Ответы с готовыми решениями:

Файловый менеджер
Всем привет! Пытаюсь двигаться дальше в изучении php. Пишу файловый менеджер. Вернее пытаюсь написать... :- &lt;html&gt; ... ...

файловый менеджер
Доброго вечера всем кто читает срочно возникла необходимость в написании файлового менеджера на php, тоесть он должен показывать...

Файловый менеджер
Доброго времени суток. Сейчас разбираюсь с файловым менеджером. Посмотрел пример написания вот на сайте: . Внизу также приведены коды...

2
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076
15.01.2017, 18:05  [ТС]
Все настолько безнадежно?
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
15.01.2017, 20:12
всё настолько неинтересно - в бредокоде копаться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2017, 20:12
Помогаю со студенческими работами здесь

Файловый менеджер
Добрый день! Столкнулся с необходимостью создания на сайте возможности для пользователя загружать, хранить и скачивать файлы. Плюс нужно...

Простенкий файловый менеджер
Доброго времени суток! Есть скрипт php который должен принимать из формы путь к любой директории на компьютере и отображать ее...

Файловый менеджер на сайте
Здравствуйте уважаемые программисты, у меня возник вопрос. Можно ли сделать файловый менеджер прямо на сайте? Загрузил во вложения...

Файловый менеджер (ооп).
Как Вы видите файловый менеджер с ООП. Какие бы вы создали объекты, в каком порядке???

простенький файловый менеджер
Нужен самы простенький файловый менеджер!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru