diff --git a/export_html.php b/export_html.php index b0de847..264d5f4 100644 --- a/export_html.php +++ b/export_html.php @@ -1,5 +1,9 @@ prepare("SELECT * FROM installations WHERE id = :id"); $stmt->bindParam(':id', $installation_id, PDO::PARAM_INT); @@ -30,107 +33,126 @@ try { $images = $img_stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { - die("Erro ao acessar o banco de dados: " . $e->getMessage()); + // Em caso de erro, envie um cabeçalho de erro e uma mensagem clara. + header("HTTP/1.1 500 Internal Server Error"); + die("Erro no servidor: Não foi possível conectar ao banco de dados. Detalhe: " . $e->getMessage()); } -// --- Início da Geração MHTML --- +// --- Funções Auxiliares --- +function xml_escape($string) { + return htmlspecialchars($string, ENT_XML1, 'UTF-8'); +} -$boundary = "----=" . md5(uniqid(time())); -$filename = "instalacao_" . $installation['id'] . "_" . str_replace(' ', '_', $installation['client_name']) . ".doc"; +// --- Preparar variáveis --- +$filename = "instalacao_" . $installation['id'] . ".doc"; -// Cabeçalhos principais para MHTML -header("Content-Type: multipart/related; boundary=\"$boundary\""); -header("Content-Disposition: attachment; filename=\"" . $filename . "\""); +// --- Geração do XML --- -// Parte 1: Conteúdo HTML -$html_content = << - -
- -| ID da Instalação | {htmlspecialchars($installation['id'])} |
| Cliente | {htmlspecialchars($installation['client_name'])} |
| Endereço | {htmlspecialchars($installation['address'])} |
| Técnico Responsável | {htmlspecialchars($installation['technician_name'])} |
| Data | {date("d/m/Y H:i", strtotime($installation['created_at']))} |
| Status | {ucfirst(htmlspecialchars($installation['status']))} |
| Tensão (V) | {htmlspecialchars($installation['voltage'] ?? 'N/A')} |
| Fase-Neutro-Terra | {htmlspecialchars($installation['phase_neutral_ground'] ?? 'N/A')} |
| Saída do Disjuntor | {htmlspecialchars($installation['breaker_output'] ?? 'N/A')} |
{nl2br(htmlspecialchars($installation['observations'] ?? 'Nenhuma observação.'))}
-HTML; +$xml_content = ''; -// Preparar a seção de imagens -$images_html = ''; -$image_parts = ''; +// Título +$xml_content .= '