Files
skyview.astronomiemuseum.de/public/index.php
T
2026-03-31 09:44:27 +02:00

107 lines
3.1 KiB
PHP

<?php
declare(strict_types=1);
ini_set('display_errors', '1');
error_reporting(E_ALL);
session_start();
$loggedIn = isset($_SESSION['user_id']);
$defaultLocation = null;
if ($loggedIn) {
$config = require __DIR__ . '/../config/database.php';
$dsn = sprintf(
'mysql:host=%s;dbname=%s;charset=%s',
$config['host'],
$config['dbname'],
$config['charset'] ?? 'utf8mb4'
);
$pdo = new PDO(
$dsn,
$config['user'],
$config['pass'],
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]
);
$userId = (int)$_SESSION['user_id'];
$displayName = $_SESSION['display_name'] ?? '';
$username = $_SESSION['username'] ?? '';
$role = $_SESSION['role'] ?? 'user';
$stmtLocation = $pdo->prepare("
SELECT
`name`,
`latitude`,
`longitude`,
`elevation`,
`timezone`
FROM `app_user_locations`
WHERE `user_id` = :user_id
AND `is_default` = 1
LIMIT 1
");
$stmtLocation->execute([':user_id' => $userId]);
$defaultLocation = $stmtLocation->fetch();
}
function h(?string $value): string
{
return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
}
?>
<?php require __DIR__ . '/header.php'; ?>
<?php if (!$loggedIn): ?>
<div class="public-hero">
<h2>Das Universum erwartet dich</h2>
<p>Satellitentracking, Himmelsvorschau und Astronomiewerkzeuge für Sonneberg und darüber hinaus.</p>
<div class="btn-row">
<a href="login.php" class="btn btn-primary">Anmelden</a>
<a href="register.php" class="btn btn-secondary">Registrieren</a>
</div>
</div>
<?php else: ?>
<p class="welcome-text">
Willkommen zurück, <strong><?= h($displayName !== '' ? $displayName : $username) ?></strong>.
</p>
<div class="grid-2">
<div class="card">
<h2>Konto</h2>
<table class="data-table">
<tr><td>Benutzername</td><td><?= h($username) ?></td></tr>
<tr><td>Rolle</td><td><?= h($role) ?></td></tr>
</table>
</div>
<div class="card">
<h2>Standard-Standort</h2>
<?php if ($defaultLocation): ?>
<table class="data-table">
<tr><td>Name</td><td><?= h($defaultLocation['name']) ?></td></tr>
<tr><td>Breitengrad</td><td><?= h((string)$defaultLocation['latitude']) ?></td></tr>
<tr><td>Längengrad</td><td><?= h((string)$defaultLocation['longitude']) ?></td></tr>
<tr><td>Höhe</td><td><?= h($defaultLocation['elevation'] !== null ? (string)$defaultLocation['elevation'] . ' m' : '—') ?></td></tr>
<tr><td>Zeitzone</td><td><?= h($defaultLocation['timezone']) ?></td></tr>
</table>
<?php else: ?>
<p class="hint">Noch kein Standort hinterlegt. <a href="settings.php">Jetzt anlegen</a></p>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php require __DIR__ . '/footer.php'; ?>