-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreset.php
More file actions
41 lines (35 loc) · 1.53 KB
/
reset.php
File metadata and controls
41 lines (35 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
// reset.php
include 'config.php';
$message = '';
$error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'reset_all') {
if (isset($_POST['password']) && $_POST['password'] === DELETE_PASSWORD) {
$conn->begin_transaction();
try {
// L'ordre est important !
// 1. Désactiver la vérification des clés étrangères temporairement
$conn->query("SET FOREIGN_KEY_CHECKS = 0;");
// 2. Vider d'abord la table 'ventes' (qui est la table enfant)
$conn->query("TRUNCATE TABLE ventes");
// 3. Puis vider la table 'clients' (qui est la table parent)
$conn->query("TRUNCATE TABLE clients");
// 4. Réactiver la vérification des clés étrangères
$conn->query("SET FOREIGN_KEY_CHECKS = 1;");
$conn->commit();
$message = "La base de données a été réinitialisée avec succès !";
header("Location: index.php?message=" . urlencode($message));
exit();
} catch (mysqli_sql_exception $e) {
$conn->rollback();
$error = "Erreur lors de la réinitialisation de la base de données : " . $e->getMessage();
header("Location: index.php?error=" . urlencode($error));
exit();
}
} else {
$error = "Mot de passe incorrect. Réinitialisation refusée.";
header("Location: index.php?error=" . urlencode($error));
exit();
}
}
?>