# 📧 Sistema de Landing Page - Envio de Mensagens GRAJA

Sistema completo de landing page para captura de mensagens com dados pré-preenchidos via URL, desenvolvido em PHP 8 + MySQL com design inspirado no Google Forms.

---

## 📋 Descrição

Sistema de mensageria simples e eficiente que permite:
- Receber parâmetros `nome` e `telefone` via URL (readonly)
- Usuário digita mensagem livre
- Salva no banco de dados MySQL com timestamp
- Design responsivo preto e branco matching com logo GRAJA

---

## 🗂️ Estrutura de Arquivos

```
landing_page_mensagens/
├── criar_tabela_mensagens_lp.sql  # Script SQL para criar tabela
├── landing_mensagens.php          # Landing page (formulário)
├── salvar_mensagem.php            # Endpoint para salvar mensagem
├── logo pequeno pb.jpg            # Logo GRAJA (preto e branco)
└── README.md                      # Este arquivo
```

---

## 🚀 Instalação e Configuração

### 1️⃣ Criar a Tabela no Banco de Dados

**Via phpMyAdmin (cPanel):**
1. Acesse o phpMyAdmin do seu cPanel
2. Selecione seu banco de dados
3. Vá na aba "SQL"
4. Cole o conteúdo do arquivo `criar_tabela_mensagens_lp.sql`
5. Clique em "Executar"

✅ A tabela `mensagens_lp` será criada com sucesso!

**Estrutura da Tabela:**
```sql
mensagens_lp
├── id (INT AUTO_INCREMENT PRIMARY KEY)
├── data_hora_envio (DATETIME)
├── nome (VARCHAR 150)
├── telefone (VARCHAR 30)
└── mensagem (TEXT)
```

### 2️⃣ Configurar Conexão com Banco de Dados

Edite o arquivo `salvar_mensagem.php` (linhas 23-27):

```php
// =====================================================
// CONFIGURAÇÃO DO BANCO DE DADOS
// =====================================================
$DB_HOST = 'localhost';              // Host do banco
$DB_NAME = 'seu_banco_de_dados';     // ⚠️ ALTERAR: Nome do seu banco
$DB_USER = 'seu_usuario';            // ⚠️ ALTERAR: Usuário do banco
$DB_PASS = 'sua_senha';              // ⚠️ ALTERAR: Senha do banco
$DB_CHARSET = 'utf8mb4';             // Não alterar
```

**Como encontrar essas informações no cPanel:**
- Acesse: **cPanel → MySQL® Databases**
- **DB_NAME**: Nome do banco já criado
- **DB_USER**: Usuário associado ao banco
- **DB_PASS**: Senha definida na criação do usuário

### 3️⃣ Upload dos Arquivos para o Servidor

**Via Gerenciador de Arquivos (cPanel):**
1. Acesse: **cPanel → File Manager**
2. Navegue até `public_html/` (ou pasta desejada)
3. Crie uma pasta chamada `landing_page_mensagens`
4. Faça upload de todos os arquivos:
   - `landing_mensagens.php`
   - `salvar_mensagem.php`
   - `logo pequeno pb.jpg`

**Via FTP (FileZilla, etc):**
```
Conecte ao seu servidor via FTP
Navegue até public_html/
Crie pasta: landing_page_mensagens/
Upload de todos os arquivos
```

### 4️⃣ Configurar Permissões (se necessário)

```bash
chmod 644 *.php
chmod 644 *.jpg
```

---

## 🎯 Como Usar

### URL de Acesso

O formulário deve ser acessado com parâmetros obrigatórios:

```
https://seusite.com/landing_page_mensagens/landing_mensagens.php?nome=Fulano%20da%20Silva&telefone=11999998888
```

**Parâmetros:**
- `nome`: Nome do remetente (URL encoded)
- `telefone`: Telefone do remetente

### Exemplo de URL Completa

```
https://seusite.com/landing_page_mensagens/landing_mensagens.php?nome=João%20Pedro%20Santos&telefone=11987654321
```

### Comportamento

✅ **COM parâmetros válidos:**
- Campos nome e telefone aparecem preenchidos (readonly)
- Campo mensagem habilitado para digitação
- Botão "Enviar" ativo

❌ **SEM parâmetros:**
- Exibe mensagem de aviso
- Campos desabilitados
- Botão "Enviar" desabilitado

---

## 🎨 Características de Design

- ✅ **Estilo Google Forms**: Clean, minimalista, focado em conversão
- ✅ **Cores**: Preto e branco (matching com logo GRAJA)
- ✅ **Responsivo**: Funciona perfeitamente em desktop e mobile
- ✅ **Logo**: Exibido no topo com inversão de cores (branco em fundo preto)
- ✅ **UX Otimizada**: Campos readonly claramente identificados, texto auxiliar, feedback visual

---

## 🔒 Segurança

✅ **Prepared Statements (PDO)**: Proteção contra SQL Injection  
✅ **htmlspecialchars()**: Proteção contra XSS  
✅ **Validação de Dados**: Tamanho máximo, campos obrigatórios  
✅ **Charset UTF-8**: Suporte completo a caracteres especiais  
✅ **Error Handling**: Mensagens amigáveis sem expor dados sensíveis  

---

## 📱 Responsividade

O sistema é totalmente responsivo:

| Dispositivo | Comportamento |
|-------------|---------------|
| Desktop | Layout centralizado, max-width 640px |
| Tablet | Adapta automaticamente |
| Mobile | Remove bordas arredondadas, reduz padding, logo menor |

---

## 🧪 Testando o Sistema

### Teste 1: URL com Parâmetros
```
landing_mensagens.php?nome=Teste%20Silva&telefone=11999887766
```
✅ Deve exibir formulário completo e funcional

### Teste 2: URL sem Parâmetros
```
landing_mensagens.php
```
⚠️ Deve exibir mensagem de aviso e desabilitar formulário

### Teste 3: Envio de Mensagem
1. Acesse com parâmetros válidos
2. Digite uma mensagem no campo "Sua mensagem"
3. Clique em "Enviar"
4. ✅ Deve mostrar página de sucesso
5. Verifique no banco: `SELECT * FROM mensagens_lp ORDER BY id DESC LIMIT 1`

---

## 🗄️ Consultando Mensagens no Banco

### Via phpMyAdmin

```sql
-- Ver todas as mensagens
SELECT * FROM mensagens_lp ORDER BY data_hora_envio DESC;

-- Ver mensagens de hoje
SELECT * FROM mensagens_lp 
WHERE DATE(data_hora_envio) = CURDATE() 
ORDER BY data_hora_envio DESC;

-- Contar mensagens por nome
SELECT nome, COUNT(*) as total 
FROM mensagens_lp 
GROUP BY nome 
ORDER BY total DESC;
```

### Via PHP (opcional)

```php
<?php
// listar_mensagens.php (criar se necessário)
$pdo = new PDO("mysql:host=localhost;dbname=seu_banco", "usuario", "senha");
$stmt = $pdo->query("SELECT * FROM mensagens_lp ORDER BY data_hora_envio DESC");
$mensagens = $stmt->fetchAll();

foreach ($mensagens as $msg) {
    echo "{$msg['data_hora_envio']} - {$msg['nome']} ({$msg['telefone']}): {$msg['mensagem']}<br>";
}
?>
```

---

## 🛠️ Solução de Problemas

### Problema: "Erro de conexão com o banco de dados"

**Solução:**
1. Verifique as credenciais em `salvar_mensagem.php` (linhas 23-27)
2. Confirme que o banco de dados existe no cPanel
3. Verifique se o usuário tem permissões no banco
4. Teste conexão via phpMyAdmin

### Problema: "Tabela 'mensagens_lp' não existe"

**Solução:**
1. Execute o script SQL `criar_tabela_mensagens_lp.sql` no phpMyAdmin
2. Verifique se a tabela foi criada: `SHOW TABLES LIKE 'mensagens_lp';`

### Problema: Logo não aparece

**Solução:**
1. Verifique se o arquivo `logo pequeno pb.jpg` está na mesma pasta dos arquivos PHP
2. Confirme permissões: `chmod 644 "logo pequeno pb.jpg"`
3. Limpe cache do navegador (Ctrl+F5)

### Problema: Campos aparecem vazios mesmo com parâmetros na URL

**Solução:**
1. Verifique se a URL está corretamente formatada (espaços = %20)
2. Confirme que está usando `?` antes dos parâmetros e `&` entre eles
3. Teste URL exemplo: `landing_mensagens.php?nome=Teste&telefone=123`

---

## 📊 Estatísticas e Monitoramento

### Query para Dashboard Simples

```sql
-- Total de mensagens
SELECT COUNT(*) as total FROM mensagens_lp;

-- Mensagens por dia
SELECT DATE(data_hora_envio) as data, COUNT(*) as qtd
FROM mensagens_lp
GROUP BY DATE(data_hora_envio)
ORDER BY data DESC;

-- Últimas 10 mensagens
SELECT * FROM mensagens_lp 
ORDER BY data_hora_envio DESC 
LIMIT 10;
```

---

## 📝 Requisitos Técnicos

| Requisito | Versão/Especificação |
|-----------|---------------------|
| PHP | 8.0+ (compatível com cPanel) |
| MySQL | 5.7+ ou MariaDB 10.2+ |
| PDO Extension | Habilitado (padrão em cPanel) |
| Timezone | America/Sao_Paulo |
| Charset | UTF-8 (utf8mb4) |

---

## 🌐 URLs de Exemplo

### Desenvolvimento Local (se aplicável)
```
http://localhost/landing_page_mensagens/landing_mensagens.php?nome=Teste&telefone=11999999999
```

### Produção (cPanel)
```
https://seudominio.com.br/landing_page_mensagens/landing_mensagens.php?nome=Cliente%20Exemplo&telefone=11987654321
```

---

## 📌 Notas Importantes

⚠️ **Não há interface CRUD**: Sistema projetado apenas para receber mensagens via formulário. Para visualizar/gerenciar mensagens, use phpMyAdmin ou crie uma interface administrativa separada.

⚠️ **Timezone**: Todas as datas são gravadas em America/Sao_Paulo (UTC-3)

⚠️ **Método GET**: O formulário usa GET (não POST) conforme especificação. Em produção, considere mudar para POST se houver mensagens longas.

⚠️ **Limite de caracteres**: 
- Nome: 150 caracteres
- Telefone: 30 caracteres
- Mensagem: Sem limite (TEXT)

---

## 🎓 Fluxo de Funcionamento

```
1. Usuário acessa URL com parâmetros
   ↓
2. landing_mensagens.php carrega
   ↓
3. PHP valida presença de nome e telefone
   ↓
4. Se OK: Exibe formulário habilitado
   Se NOK: Exibe aviso e desabilita
   ↓
5. Usuário digita mensagem e clica "Enviar"
   ↓
6. GET para salvar_mensagem.php
   ↓
7. Valida dados recebidos
   ↓
8. Conecta no banco via PDO
   ↓
9. Insere registro com timestamp
   ↓
10. Exibe página de sucesso
```

---

## 📞 Suporte

Para dúvidas ou problemas:
1. Verifique este README completamente
2. Consulte logs de erro do PHP (cPanel → Error Logs)
3. Teste queries SQL no phpMyAdmin
4. Verifique permissões de arquivos

---

## ✨ Melhorias Futuras (Opcional)

- [ ] Criar página administrativa para visualizar mensagens
- [ ] Adicionar paginação na listagem
- [ ] Implementar busca/filtro por data/nome
- [ ] Adicionar notificação por email ao receber mensagem
- [ ] Implementar captcha para evitar spam
- [ ] Mudar método de GET para POST
- [ ] Adicionar validação de formato de telefone

---

## 📄 Licença

Sistema desenvolvido para uso interno da GRAJA.

---

**Desenvolvido com ❤️ em PHP + MySQL**  
**Design inspirado no Google Forms**  
**Cores: Preto e Branco (GRAJA Brand)**

---

## 🚀 Quick Start

```bash
# 1. Execute o SQL no phpMyAdmin
# 2. Configure banco em salvar_mensagem.php
# 3. Upload dos arquivos via cPanel
# 4. Acesse: sua_url.com/landing_page_mensagens/landing_mensagens.php?nome=Teste&telefone=123
# 5. Digite mensagem e envie
# 6. ✅ Sucesso!
```

---

**Última atualização**: Novembro 2025  
**Versão**: 1.0.0
