prepare('INSERT INTO puzzles (name, original_image, pieces, is_public, created_at) VALUES (?, ?, ?, ?, NOW())'); $stmt->execute([$puzzle_name, $safe_filename, $pieces, $is_public]); $puzzle_id = $pdo->lastInsertId(); // Create puzzle pieces create_puzzle_pieces($upload_path, $puzzle_id, $pieces); header("Location: admin.php?success=1"); exit; } } // Handle error case header("Location: admin.php?error=1"); exit; } // Handle puzzle deletion if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_puzzle'])) { $puzzle_id_to_delete = $_POST['puzzle_id']; // First, get the original image filename to delete it $stmt = $pdo->prepare('SELECT original_image FROM puzzles WHERE id = ?'); $stmt->execute([$puzzle_id_to_delete]); $puzzle = $stmt->fetch(PDO::FETCH_ASSOC); if ($puzzle) { // Delete original image file $original_image_path = __DIR__ . '/uploads/' . $puzzle['original_image']; if (file_exists($original_image_path)) { unlink($original_image_path); } } // Delete from DB $stmt = $pdo->prepare('DELETE FROM puzzles WHERE id = ?'); $stmt->execute([$puzzle_id_to_delete]); // Delete puzzle pieces directory $puzzle_dir = __DIR__ . '/puzzles/' . $puzzle_id_to_delete; if (is_dir($puzzle_dir)) { // A simple recursive delete function function delete_directory($dir) { if (!is_dir($dir)) return; $files = array_diff(scandir($dir), array('.','..')); foreach ($files as $file) { (is_dir("$dir/$file")) ? delete_directory("$dir/$file") : unlink("$dir/$file"); } rmdir($dir); } delete_directory($puzzle_dir); } header("Location: admin.php?deleted=1"); // Redirect to avoid re-posting exit; } $puzzles = $pdo->query('SELECT id, name, original_image, pieces, is_public, created_at FROM puzzles ORDER BY created_at DESC')->fetchAll(PDO::FETCH_ASSOC); ?> Pannello di Amministrazione
Puzzle aggiunto con successo!
Puzzle eliminato con successo.
Errore durante l'upload. Controlla i dati e riprova.

Aggiungi Nuovo Puzzle

Gestione Puzzle

ID Nome Immagine Pezzi Pubblico Creato il Azioni
Nessun puzzle trovato.
Puzzle