CAFÉ AURORA — WEB II — CHECKPOINT DO CAPÍTULO 3

Este checkpoint serve para conferência ou retomada depois da construção prática.
Ele inclui os capítulos anteriores e acrescenta o recebimento e a validação do formulário de contato pelo método POST.

COMO EXECUTAR
1. Abra a pasta cafe-aurora-web2 no VS Code.
2. Confira o PHP no terminal com: php -v
3. Verifique a sintaxe:
   php -l public/index.php
   php -l public/cardapio.php
   php -l public/contato.php
4. Inicie o servidor:
   php -S localhost:8000 -t public
5. Abra http://localhost:8000/contato.php no navegador.
6. Para encerrar, pressione Ctrl + C no terminal.

O QUE FOI ACRESCENTADO
- contato.html renomeado para contato.php;
- links internos atualizados para o novo nome;
- envio do formulário com method="post";
- detecção do método por $_SERVER["REQUEST_METHOD"];
- leitura de campos com $_POST e normalização com trim();
- validação de nome, e-mail, assunto e tamanho da mensagem;
- assunto limitado por uma lista permitida;
- escape de toda saída recebida com htmlspecialchars();
- resumo acessível de erros e mensagens associadas aos campos;
- preservação dos valores para facilitar a correção;
- contador da mensagem atualizado também após uma resposta com erros.

ENDEREÇOS PARA TESTAR
- http://localhost:8000/contato.php
- http://localhost:8000/cardapio.php?categoria=bebida

CONFIRA
- a URL não recebe os dados do formulário;
- o painel Network mostra uma requisição POST e a carga útil;
- nome curto, e-mail inválido, assunto ausente e mensagem curta são rejeitados;
- os valores válidos permanecem disponíveis para correção;
- o resumo de erros leva ao campo correspondente;
- uma mensagem válida produz confirmação sem prometer armazenamento ou e-mail;
- a navegação, o cardápio e o JavaScript anterior continuam funcionando.

IMPORTANTE
- POST não criptografa os dados; uma publicação real precisa de HTTPS;
- a validação do navegador não substitui a validação no servidor;
- validação e escape de saída resolvem problemas diferentes;
- as imagens WebP, a responsividade e a acessibilidade do projeto foram preservadas;
- ainda não há envio de e-mail nem banco de dados nesta etapa.
