code config.php
Configurateur Intelligent : config.php
Ce fichier est l'installateur de votre système. Il permet de configurer graphiquement votre code PIN, vos notifications (Email et SMS Free Mobile), ainsi que la liste des smartphones à surveiller. Il sécurise automatiquement votre installation en créant le dossier de données et sa protection .htaccess.
1. Installation du fichier
Créez le fichier config.php sur votre Raspberry Pi :
sudo nano /var/www/html/config.php Copiez l'intégralité du code ci-dessous et collez-le dans l'éditeur :
<?php
// config.php - Installation et Configuration du Système d'Alarme
$base_dir = __DIR__ . '/data/';
$env_file = $base_dir . '.env.php';
$devices_file = $base_dir . 'devices_status.json';
$htaccess_file = $base_dir . '.htaccess';
$message = "";
if (!file_exists($base_dir)) { mkdir($base_dir, 0770, true); }
if (!file_exists($htaccess_file)) { file_put_contents($htaccess_file, "Deny from all"); }
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$pin_hash = hash('sha256', $_POST['user_pin']);
$input_devices = explode(',', $_POST['devices_names']);
$clean_devices = array_filter(array_map('trim', $input_devices));
$config = [
'PIN_HASH' => $pin_hash,
'SECRET_PHRASE' => $_POST['secret_phrase'],
'DEVICES_LIST' => array_values($clean_devices),
'MAIL_ENABLED' => isset($_POST['mail_active']),
'MAIL_DEST' => $_POST['mail_to'],
'MAIL_FROM' => $_POST['mail_from'],
'SMTP_SERVER' => $_POST['smtp_server'],
'SMTP_PORT' => (int)$_POST['smtp_port'],
'SMTP_PASS' => $_POST['smtp_pass'],
'FREE_SMS_ACTIVE' => isset($_POST['free_active']),
'FREE_USER' => $_POST['free_user'],
'FREE_PASS' => $_POST['free_pass'],
'LOG_PATH' => __DIR__ . '/alarm_activity.log',
'DATA_DIR' => $base_dir
];
$content = "<?php\nreturn " . var_export($config, true) . ";";
if (file_put_contents($env_file, $content)) {
$new_status = [];
foreach($clean_devices as $name) { $new_status[$name] = "absent"; }
file_put_contents($devices_file, json_encode($new_status, JSON_PRETTY_PRINT));
chmod($env_file, 0660);
$message = "<div class='alert success'>✅ Configuration réussie !</div>";
} else {
$message = "<div class='alert error'>❌ Erreur d'écriture.</div>";
}
}
$current_config = file_exists($env_file) ? include($env_file) : [];
$current_devices = isset($current_config['DEVICES_LIST']) ? implode(', ', $current_config['DEVICES_LIST']) : "Utilisateur-1, Utilisateur-2";
?>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Installation</title></head>
<body style="font-family:sans-serif; background:#f2f2f7; padding:20px;">
<div style="max-width:600px; margin:auto; background:white; padding:30px; border-radius:20px;">
<h1>Installation du Système</h1>
<?php echo $message; ?>
<form method="POST">
<label>Code PIN (4 chiffres)</label><br>
<input type="password" name="user_pin" maxlength="4" required style="width:100%; padding:10px;">
<br><br>
<button type="submit" style="background:#007aff; color:white; border:none; padding:15px; width:100%; border-radius:10px;">Générer</button>
</form>
</div>
</body>
</html> 2. Utilisation
Une fois le fichier sauvegardé, accédez à l'interface via votre navigateur :
http://votre-ip-raspberry/config.phpNote importante : Le configurateur crée un fichier .env.php protégé dans le dossier /data/. Ce fichier contient vos clés de sécurité de manière isolée du reste du code.