forked from ZwiiCMS-Team/ZwiiCampus
Ajouter le paramètre get FILTER
This commit is contained in:
parent
137c151e19
commit
7138c07a89
@ -4,22 +4,38 @@
|
||||
Ce script PHP est conçu pour être appelé via une requête HTTP GET avec une clé spécifique pour déclencher la création d'une archive ZIP de sauvegarde.
|
||||
|
||||
Exemple d'appel dans une URL :
|
||||
http://example.com/chemin/vers/autobackup.php?key=your_secret_key
|
||||
http://example.com/chemin/vers/autobackup.php?key=your_secret_key&filter=site
|
||||
|
||||
La clé doit être fournie en tant que paramètre "key" dans l'URL et correspondre à celle stockée dans le fichier "data.key" pour que la création de l'archive soit autorisée. Si la clé est valide, le script parcourt le répertoire spécifié et ajoute les fichiers à l'archive ZIP. Si la clé est invalide ou absente, le script affiche un message d'erreur et termine son exécution.
|
||||
La clé doit être fournie en tant que paramètre "key" dans l'URL et correspondre à celle stockée dans le fichier "data.key" pour que la création de l'archive soit autorisée. Si la clé est valide, le script parcourt le répertoire spécifié en fonction du paramètre "filter" et ajoute les fichiers à l'archive ZIP. Si la clé est invalide ou absente, le script renvoie une réponse avec le code d'erreur 401 Unauthorized.
|
||||
|
||||
Le paramètre "filter" en GET permet de spécifier le filtre à appliquer lors de la création de l'archive. Sa valeur peut être "file" ou "data". Si le paramètre n'est pas spécifié, le filtre est vide par défaut, ce qui signifie que tous les fichiers seront inclus dans l'archive.
|
||||
|
||||
*/
|
||||
|
||||
// Vérification de la clé
|
||||
if (isset ($_GET['key'])) {
|
||||
if (isset($_GET['key'])) {
|
||||
$key = $_GET['key'];
|
||||
$storedKey = file_get_contents('data.key');
|
||||
if ($key !== $storedKey) {
|
||||
http_response_code(401);
|
||||
http_response_code(401); // Clé invalide, renvoie une réponse avec le code d'erreur 401 Unauthorized
|
||||
exit();
|
||||
}
|
||||
// Création du ZIP
|
||||
|
||||
// Définition du filtre par défaut
|
||||
$filter = ['backup', 'tmp'];
|
||||
|
||||
// Tableau de correspondance entre les valeurs de "filter" et les répertoires à inclure
|
||||
$filterDirectories = [
|
||||
'file' => ['backup', 'tmp', 'file'],
|
||||
'data' => ['backup', 'tmp', 'data']
|
||||
];
|
||||
|
||||
// Vérification et traitement du paramètre "filter" en GET
|
||||
if (isset($_GET['filter']) && isset($filterDirectories[$_GET['filter']])) {
|
||||
$filter = $filterDirectories[$_GET['filter']];
|
||||
}
|
||||
|
||||
// Création du ZIP
|
||||
$fileName = date('Y-m-d-H-i-s', time()) . '-rolling-backup.zip';
|
||||
$zip = new ZipArchive();
|
||||
$zip->open('../../../../site/backup/' . $fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
|
||||
@ -43,5 +59,7 @@ if (isset ($_GET['key'])) {
|
||||
}
|
||||
}
|
||||
$zip->close();
|
||||
http_response_code(201);
|
||||
}
|
||||
|
||||
http_response_code(201); // Création de l'archive réussie, renvoie une réponse avec le code 201 Created
|
||||
}
|
||||
?>
|
||||
|
Loading…
Reference in New Issue
Block a user