# 📋 Sistema PHP + MySQL - Gerenciamento de Usuários

Sistema completo de gerenciamento de usuários com dashboard visual, listagem com paginação e operações CRUD.

---

## 🎯 Características

✅ **8 arquivos PHP** totalmente funcionais  
✅ **Bootstrap 5** para interface responsiva  
✅ **Prepared Statements** para segurança contra SQL Injection  
✅ **Código comentado** em português  
✅ **Compatível com cPanel**  
✅ **Dashboard com cards coloridos** e estatísticas  
✅ **Paginação configurável** (10/25/50/100 registros)  
✅ **Menu de navegação** entre páginas  
✅ **Auto-preenchimento** de data e hora  

---

## 📁 Estrutura de Arquivos

```
sistema_php_usuarios/
├── config.php                      # Configuração do banco de dados
├── criar_tabela_usuarios_03.php    # Script para criar a tabela
├── dashboard.php                   # Dashboard com estatísticas
├── listar_usuarios.php             # Listagem com paginação
├── adicionar_usuario.php           # Adicionar usuário via GET
├── alterar_status_humano.php       # Alterar status para Humano
├── alterar_status_ia.php           # Alterar status para IA
├── excluir_usuario.php             # Excluir usuário
└── README.md                       # Este arquivo
```

---

## 🗄️ Estrutura da Tabela

**Nome:** `usuarios_03`

| Campo          | Tipo                              | Descrição                    |
|----------------|-----------------------------------|------------------------------|
| id             | INT (AUTO_INCREMENT, PRIMARY KEY) | ID único do usuário          |
| telefone       | VARCHAR(20) NOT NULL              | Número de telefone           |
| nome           | VARCHAR(255) NOT NULL             | Nome completo                |
| status         | ENUM('Humano', 'IA', 'Abandono')  | Status do usuário            |
| data_inclusao  | DATE NOT NULL                     | Data de cadastro (automática)|
| hora_inclusao  | TIME NOT NULL                     | Hora de cadastro (automática)|

**Índices:** telefone, status, data_inclusao

---

## 🚀 Instalação no cPanel

### **Passo 1: Criar Banco de Dados**

1. Acesse o **cPanel** da sua hospedagem
2. Vá em **MySQL® Databases** ou **Bancos de Dados MySQL**
3. Crie um novo banco de dados (ex: `meusite_usuarios`)
4. Crie um novo usuário MySQL com senha segura
5. Vincule o usuário ao banco de dados com **TODOS OS PRIVILÉGIOS**
6. **Anote:** nome do banco, usuário e senha

### **Passo 2: Fazer Upload dos Arquivos**

1. No cPanel, vá em **Gerenciador de Arquivos**
2. Navegue até `public_html` (ou subpasta desejada)
3. Crie uma pasta `sistema_usuarios` (ou nome de sua escolha)
4. Faça upload de todos os 8 arquivos PHP para esta pasta
5. Verifique se as permissões estão corretas (644 para arquivos)

### **Passo 3: Configurar Conexão**

1. Abra o arquivo `config.php` no editor do cPanel
2. Altere as seguintes linhas:

```php
define('DB_HOST', 'localhost');           // Geralmente permanece localhost
define('DB_USER', 'seu_usuario');         // Substitua pelo usuário MySQL
define('DB_PASS', 'sua_senha');           // Substitua pela senha
define('DB_NAME', 'seu_banco');           // Substitua pelo nome do banco
```

3. Salve o arquivo

### **Passo 4: Criar a Tabela**

1. Acesse pelo navegador:  
   `https://seudominio.com/sistema_usuarios/criar_tabela_usuarios_03.php`

2. Se aparecer mensagem de sucesso, a tabela foi criada!

3. **⚠️ IMPORTANTE:** Este script só precisa ser executado UMA VEZ

---

## 📖 Como Usar o Sistema

### **🏠 Dashboard**
- **URL:** `dashboard.php`
- Exibe estatísticas em cards coloridos:
  - Total de usuários
  - Total por status (Humano, IA, Abandono)
  - Percentuais de cada status
- Formulário rápido para adicionar usuário

### **📋 Listagem**
- **URL:** `listar_usuarios.php`
- Funcionalidades:
  - Visualizar todos os usuários
  - Paginação (escolha 10, 25, 50 ou 100 registros)
  - Botões para alterar status (Humano/IA)
  - Botão para excluir usuário
  - Navegação entre páginas

### **➕ Adicionar Usuário**
**Método 1 - Via URL (GET):**
```
adicionar_usuario.php?telefone=11999999999&nome=João Silva
```

**Método 2 - Via Dashboard:**
- Clique em "Adicionar Novo Usuário"
- Preencha o formulário
- Status inicial: Automático como "Abandono"

### **🔄 Alterar Status**

**Para Humano:**
```
alterar_status_humano.php?telefone=11999999999
```

**Para IA:**
```
alterar_status_ia.php?telefone=11999999999
```

### **🗑️ Excluir Usuário**
```
excluir_usuario.php?id=123
```

---

## 🎨 Recursos Visuais

### **Dashboard - Cards Coloridos**
- 🟣 **Roxo:** Total geral de usuários
- 🟢 **Verde:** Status Humano
- 🔵 **Azul:** Status IA
- 🔴 **Vermelho:** Status Abandono

### **Listagem - Badges de Status**
- 🟢 **Verde:** Humano
- 🔵 **Azul:** IA
- 🔴 **Vermelho:** Abandono

### **Botões de Ação**
- ✅ **Verde:** Alterar para Humano
- 🤖 **Azul:** Alterar para IA
- 🗑️ **Vermelho:** Excluir

---

## 🔒 Segurança Implementada

✅ **Prepared Statements** em todas as queries  
✅ **Validação de parâmetros** GET  
✅ **Escape de HTML** com `htmlspecialchars()`  
✅ **Confirmação** antes de excluir  
✅ **Proteção contra SQL Injection**  
✅ **Tratamento de erros** apropriado  

---

## 🌐 Integração com APIs/URLs Externas

### **Exemplo: Integração com WhatsApp API**

Para adicionar um usuário via API externa:

```php
// Webhook recebe dados do WhatsApp
$telefone = $_POST['phone'];
$nome = $_POST['name'];

// Redireciona para adicionar
header("Location: adicionar_usuario.php?telefone=$telefone&nome=$nome");
```

### **Exemplo: Integração com CRM**

```php
// Sistema externo faz requisição GET
$url = "https://seusite.com/adicionar_usuario.php?telefone=11999999999&nome=Maria";
file_get_contents($url);
```

---

## 📱 Responsividade

O sistema é **100% responsivo** e funciona perfeitamente em:
- 💻 Desktops
- 📱 Tablets
- 📲 Smartphones

Bootstrap 5 garante adaptação automática para todos os tamanhos de tela.

---

## 🛠️ Personalização

### **Alterar Cores dos Cards (dashboard.php)**

Busque por `.card-total`, `.card-humano`, `.card-ia`, `.card-abandono` no CSS e altere o `gradient`:

```css
.card-humano {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
}
```

### **Adicionar Novos Status**

1. Altere a tabela:
```sql
ALTER TABLE usuarios_03 
MODIFY status ENUM('Humano', 'IA', 'Abandono', 'Novo_Status') DEFAULT 'Abandono';
```

2. Crie novo arquivo `alterar_status_novo.php` baseado nos existentes

3. Adicione botão na listagem

---

## ⚠️ Resolução de Problemas

### **Erro de Conexão**
```
Erro ao conectar ao banco de dados
```
**Solução:** Verifique as credenciais em `config.php`

### **Tabela não encontrada**
```
Table 'usuarios_03' doesn't exist
```
**Solução:** Execute `criar_tabela_usuarios_03.php` novamente

### **Página em branco**
**Solução:** Ative display_errors no PHP ou verifique os logs de erro do cPanel

### **Charset com problemas (acentos)**
**Solução:** Certifique-se que o banco está em `utf8mb4_unicode_ci`

---

## 📊 Requisitos do Servidor

- **PHP:** 7.0 ou superior (recomendado: 7.4+)
- **MySQL:** 5.6 ou superior (recomendado: 5.7+)
- **Extensões PHP:** mysqli
- **Apache/Nginx:** com mod_rewrite (opcional)

---

## 🎓 Estrutura de Aprendizado

Este sistema é ideal para:
- ✅ Aprender PHP com banco de dados
- ✅ Entender prepared statements
- ✅ Trabalhar com Bootstrap
- ✅ Criar sistemas CRUD completos
- ✅ Desenvolver dashboards visuais

---

## 📝 Licença

Este código é fornecido como exemplo educacional.  
Você pode usar, modificar e distribuir livremente.

---

## 🤝 Suporte

**Dúvidas?** Verifique:
1. Configurações em `config.php`
2. Se a tabela foi criada corretamente
3. Permissões de arquivo (644)
4. Logs de erro do PHP no cPanel

---

## 🚀 Próximos Passos

Após instalação, acesse:

1. **Dashboard:** `https://seudominio.com/sistema_usuarios/dashboard.php`
2. **Listagem:** `https://seudominio.com/sistema_usuarios/listar_usuarios.php`

**Adicione alguns usuários de teste** para ver o sistema funcionando!

---

**Desenvolvido com ❤️ usando PHP + MySQL + Bootstrap**
