59 lines
2.1 KiB
PHP
59 lines
2.1 KiB
PHP
<?php
|
||
// Si quelqu'un essaie d'appeler directement /includes/db.php dans le navigateur, on coupe
|
||
if (isset($_SERVER['SCRIPT_FILENAME']) && realpath(__FILE__) === realpath($_SERVER['SCRIPT_FILENAME'])) {
|
||
http_response_code(403);
|
||
exit('
|
||
<!doctype html>
|
||
<html lang="ru"><head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>403 — Accès refusé</title>
|
||
<style>
|
||
html,body{height:100%;margin:0}
|
||
body{display:flex;align-items:center;justify-content:center;background:#f7f7f9;font-family:system-ui,Segoe UI,Roboto,Arial}
|
||
.card{max-width:560px;width:92%;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:28px;text-align:center}
|
||
.emoji{font-size:48px;margin-bottom:8px}
|
||
h1{margin:6px 0 10px;font-size:22px}
|
||
p{margin:0 0 18px;color:#6b7280}
|
||
.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
|
||
.btn{padding:10px 14px;border-radius:999px;text-decoration:none;display:inline-block}
|
||
.btn-primary{background:#E03C3F;color:#fff}
|
||
.btn-outline{border:1px solid #d1d5db;color:#fff;background:#38378B}
|
||
</style>
|
||
</head><body>
|
||
<div class="card">
|
||
<div class="emoji"></div>
|
||
<h1>Accès refusé</h1>
|
||
<p>Vous n’êtes pas autorisé à consulter cette page.</p>
|
||
<div class="row">
|
||
<a class="btn btn-primary" href="/connexion.php">Se connecter</a>
|
||
<a class="btn btn-outline" href="/">Retour à l’accueil</a>
|
||
</div>
|
||
</div>
|
||
</body></html>');
|
||
}
|
||
$host = getenv('APP_DB_HOST') ?: 'localhost';
|
||
$dbname = getenv('APP_DB_NAME') ?: '';
|
||
$user = getenv('APP_DB_USER') ?: '';
|
||
$password = getenv('APP_DB_PASS') ?: '';
|
||
$charset = getenv('APP_DB_CHARSET') ?: 'utf8mb4';
|
||
|
||
|
||
try {
|
||
$pdo = new PDO(
|
||
"mysql:host=$host;dbname=$dbname;charset=$charset",
|
||
$user,
|
||
$password,
|
||
[
|
||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||
PDO::ATTR_EMULATE_PREPARES => false,
|
||
]
|
||
);
|
||
} catch (PDOException $e) {
|
||
error_log('DB connect error: ' . $e->getMessage());
|
||
http_response_code(500);
|
||
exit('Erreur de connexion à la base de données. racine');
|
||
}
|
||
?>
|