first commit
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<?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'; ?>
|
||||
Reference in New Issue
Block a user