'.e(items_text($o['items_json'])).'
'.e($o['created_at']).'} catch (Throwable $e) { error_log('BSB WEB chat cliente: ' . $e->getMessage()); http_response_code(500); echo json_encode(['ok' => false, 'error' => 'Falha temporária no chat.']); } exit; } // Compatibilidade com envio tradicional, caso JavaScript esteja desativado. $msg = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { csrf(); $body = trim((string)($_POST['body'] ?? '')); if ($body === '' || mb_strlen($body) > 2000) { $msg = 'Escreva uma mensagem de até 2.000 caracteres.'; } else { $st = $db->prepare('INSERT INTO messages(client_id,sender_id,body) VALUES(?,?,?)'); $st->execute([uid(), uid(), $body]); redirect('loginclientes.php'); } } $st = $db->prepare('SELECT * FROM orders WHERE client_id=? ORDER BY id DESC'); $st->execute([uid()]); $orders = $st->fetchAll(); $st = $db->prepare('SELECT m.id, m.body, m.created_at, u.name AS sender_name, m.sender_id FROM messages m JOIN users u ON u.id=m.sender_id WHERE m.client_id=? ORDER BY m.id DESC LIMIT 100'); $st->execute([uid()]); $messages = array_reverse($st->fetchAll()); $lastId = $messages ? (int)end($messages)['id'] : 0; layout('Minha área do cliente'); if ($msg) echo '
'.e($msg).'
'; echo ''.e(items_text($o['items_json'])).'
'.e($o['created_at']).'Seu gestor ainda não vinculou nenhum pedido à sua conta.
'; echo 'As mensagens são atualizadas automaticamente.
'; echo ''; echo ''; echo '