Файловый менеджер на PHP

ITSpecialNSK

Новичок
Здравствуйте всем, мастерам, специалистам и начинающим программистов. У меня есть начальный код для создания файлового менеджера на php. Я не буду писать здесь - помоги написать полный и тяжелый скрипт, ещё бы сказал подарите мне сразу мозги)))). Так вот, что у меня за вопрос - вот сам скрипт, в нем работает, просмотр текущего каталога по каталогам и файлам. Допустим я создал две папки - первая folder1 и в ней folder2. Проблема в том, что при клике я могу зайти в текущий каталог ./folder1, но во второй каталог ./folder1/folder2 я не могу зайти - , так как не прописывается реальный путь, а такой ./folder2 - но такого пути ведь нет, и так понятно, хотя если прописываю вручную в адресной строке браузера, то переходит в нужный каталог. Чувствую, что ответ рядом, но занимаюсь php очень мало. Есть работающий скрипт, но он работает через register_globals - on и без указаний глобальный массивов.

PHP:
<?php

    $_GET["tochka"] = '.';

    //если не точки, то определяем её, что бы видеть, где мы находимся
    if(!isset($_GET["dir"])){
        $_GET["dir"] = $_GET["tochka"];
    }

    //открываем каталог
    $od = opendir($_GET["dir"]);
        //читаем каталог
        while($file = readdir($od)){
            //проверяем если каталог и пропускаем точку и две точки
            if(is_dir($_GET["dir"]."/".$file) && $file!="." && $file!=".."){
                //создаем массив
                $dirs[]=$file;
            }
            //проверяем если ли файл
            if(is_file($_GET["dir"]."/".$file)){
                //создаем массив
                $files[]=$file;
            }
        }

    //закрываем каталог
    closedir($od);

    //вывод результата
    print '<h2>'.$_GET["dir"].'</h2>';

    //стабильный переход на каталог вверх - начало
    if($_GET["dir"]!=$_GET["tochka"]){
        $poslslash=strrpos($_GET["dir"],"/");
        $newdir=substr($_GET["dir"],0,$poslslash);
        print "<a href='?dir=".$newdir."'>&lt;&lt;НАВЕРХ</a>";
    }
    //стабильный переход на каталог вверх - конец

    $total =  '<div id='.'data-wrapper'.'>';

    //проверка, если есть массив каталогов, то сортировка и вывод
    if(isset($dirs)){
        //сорировка
        sort($dirs);
        //вывод массива каталогов
        foreach ($dirs as $k => $v){
            $total .= "<a href='?dir=".$_GET["tochka"]."/".$dirs[$k]."'>".$dirs[$k].'</a>'.'<br />';
        }
    }
    //проверка, если есть массив файлов, то сортировка и вывод
    if(isset($files)){
        //сортировка
        sort($files);
        //вывод массива файлов
        foreach ($files as $k => $v){
            $total .= $files[$k].filesize($_GET["dir"]."/".$files[$k]);
        }
    }
    $total .= '</div>';

    //вывод общего результата
    echo $total;

    //проверка данных в GET массиве, для тестирования
    $vv = 'vv7777';
    $_GET['vv'] = $vv;

    echo '<div id='.'get_data'.'>';
    echo 'Вывод GET'.'a';
    echo '<pre>';
    print_r ($_GET);
    echo '</pre>';
    echo '<div>';

?>
 
Последнее редактирование модератором:

MrBinWin

Новичок
Попробуйте так:
PHP:
//вывод массива каталогов
        foreach ($dirs as $k => $v){
            $total .= "<a href='?dir=".$_GET["dir"]."/".$dirs[$k]."'>".$dirs[$k].'</a>'.'<br />';
        }
 

ITSpecialNSK

Новичок
15 минут и ответ найден, благадорю всех! Заработало, но ещё не понял все до конца, буду все обдумывать!
 
Сверху