Voltar para Cursos
Como ganhar dinheiro com as IA Amostra Gratuita
Aula 1
Terminal / Comandos Iniciais
rm -f /var/www/plataforma.ttplustv.shop/admin/dashboard.php nano /var/www/plataforma.ttplustv.shop/admin/dashboard.php
Arquivo / Código
<?php
session_start();
if (!isset($_SESSION['admin_id'])) {
header("Location: /admin/login.php");
exit;
}
require_once __DIR__ . '/../includes/db.php';
$mensagem = '';
if (isset($_GET['excluir_aluno'])) {
$stmt = $pdo->prepare("UPDATE usuarios SET ativo = 0 WHERE id = ?");
$stmt->execute([$_GET['excluir_aluno']]);
header("Location: /admin/dashboard.php?msg=Aluno+excluido");
exit;
}
if (isset($_GET['excluir_curso'])) {
$stmt = $pdo->prepare("UPDATE cursos SET ativo = 0 WHERE id = ?");
$stmt->execute([$_GET['excluir_curso']]);
header("Location: /admin/dashboard.php?msg=Curso+excluido");
exit;
}
if (isset($_GET['msg'])) {
$mensagem = htmlspecialchars($_GET['msg']);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['acao_aluno'])) {
$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$usuario_login = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_SPECIAL_CHARS);
$senha = password_hash($_POST['senha'], PASSWORD_DEFAULT);
$cursos_liberados = $_POST['cursos_liberados'] ?? [];
try {
$stmt = $pdo->prepare("INSERT INTO usuarios (nome, email, senha, nivel) VALUES (?, ?, ?, 'aluno')");
$stmt->execute([$nome, $usuario_login, $senha]);
$aluno_id = $pdo->lastInsertId();
foreach ($cursos_liberados as $curso_id) {
$stmtLink = $pdo->prepare("INSERT INTO aluno_cursos (aluno_id, curso_id) VALUES (?, ?)");
$stmtLink->execute([$aluno_id, $curso_id]);
}
$mensagem = "Aluno cadastrado e cursos vinculados com sucesso!";
} catch (PDOException $e) {
$mensagem = "Erro: Nome de usuário já existe.";
}
} elseif (isset($_POST['acao_curso'])) {
$titulo = filter_input(INPUT_POST, 'titulo', FILTER_SANITIZE_SPECIAL_CHARS);
$descricao = filter_input(INPUT_POST, 'descricao', FILTER_SANITIZE_SPECIAL_CHARS);
$imagem_url = filter_input(INPUT_POST, 'imagem_url', FILTER_SANITIZE_URL);
$link_afiliado = filter_input(INPUT_POST, 'link_afiliado', FILTER_SANITIZE_URL);
$tipo = $_POST['tipo'] ?? 'pago';
$stmt = $pdo->prepare("INSERT INTO cursos (titulo, descricao, imagem_url, link_afiliado, tipo) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$titulo, $descricao, $imagem_url, $link_afiliado, $tipo]);
$mensagem = "Curso criado com sucesso!";
} elseif (isset($_POST['acao_aula'])) {
$curso_id = filter_input(INPUT_POST, 'curso_id', FILTER_VALIDATE_INT);
$titulo = filter_input(INPUT_POST, 'titulo', FILTER_SANITIZE_SPECIAL_CHARS);
$plataforma = $_POST['plataforma'];
$video_url = filter_input(INPUT_POST, 'video_url', FILTER_SANITIZE_URL);
$caminho = $_POST['caminho'] ?? '';
$codigo = $_POST['codigo'] ?? '';
$stmt = $pdo->prepare("INSERT INTO aulas (curso_id, titulo, plataforma, video_url, caminho, codigo) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->execute([$curso_id, $titulo, $plataforma, $video_url, $caminho, $codigo]);
$mensagem = "Aula adicionada com sucesso!";
} elseif (isset($_POST['acao_senha'])) {
$nova_senha = password_hash($_POST['nova_senha'], PASSWORD_DEFAULT);
$stmt = $pdo->prepare("UPDATE usuarios SET senha = ? WHERE id = ?");
$stmt->execute([$nova_senha, $_SESSION['admin_id']]);
$mensagem = "Sua senha foi alterada com sucesso!";
}
}
$cursos = $pdo->query("SELECT * FROM cursos WHERE ativo = 1 ORDER BY id DESC")->fetchAll();
$alunos = $pdo->query("SELECT * FROM usuarios WHERE nivel = 'aluno' AND ativo = 1 ORDER BY id DESC")->fetchAll();
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard Admin - Autodidatas</title>
<link rel="stylesheet" href="/assets/css/style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
</head>
<body>
<header>
<nav class="navbar">
<a href="/admin/dashboard.php" class="brand-logo">
<i class="fa-solid fa-user-shield"></i> Painel Admin <span class="brand-badge">Autodidatas</span>
</a>
<div>
<a href="/admin/logout.php" class="nav-link" style="color: #ef4444;"><i class="fa-solid fa-right-from-bracket"></i> Sair</a>
</div>
</nav>
</header>
<main class="container">
<?php if ($mensagem): ?>
<div style="background-color: var(--whatsapp-color); color: #fff; padding: 1rem; border-radius: 6px; margin-bottom: 1.5rem; text-align: center;">
<?php echo htmlspecialchars($mensagem); ?>
</div>
<?php endif; ?>
<!-- FORMULÁRIOS DE CADASTRO -->
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; margin-bottom: 2rem;">
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color);">
<h3 style="color: #f59e0b; margin-bottom: 1rem;"><i class="fa-solid fa-key"></i> Alterar Senha</h3>
<form method="POST">
<input type="hidden" name="acao_senha" value="1">
<input type="password" name="nova_senha" placeholder="Digite a nova senha" required class="form-control">
<button type="submit" class="btn" style="background-color: #f59e0b;">Atualizar Senha</button>
</form>
</div>
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color);">
<h3 style="margin-bottom: 1rem;"><i class="fa-solid fa-user-plus"></i> Novo Aluno</h3>
<form method="POST">
<input type="hidden" name="acao_aluno" value="1">
<input type="text" name="nome" placeholder="Nome Completo" required class="form-control">
<input type="text" name="email" placeholder="Usuário de Acesso" required class="form-control">
<input type="password" name="senha" placeholder="Senha" required class="form-control">
<h4 style="margin: 1rem 0 0.5rem 0; font-size: 0.9rem; color: var(--text-muted);">Cursos Liberados:</h4>
<div style="max-height: 100px; overflow-y: auto; margin-bottom: 1rem; background: var(--bg-color); padding: 0.5rem; border-radius: 4px;">
<?php foreach ($cursos as $c): ?>
<label style="display: block; margin-bottom: 0.3rem;">
<input type="checkbox" name="cursos_liberados[]" value="<?php echo $c['id']; ?>">
<?php echo htmlspecialchars($c['titulo']); ?> (<?php echo ucfirst($c['tipo']); ?>)
</label>
<?php endforeach; ?>
</div>
<button type="submit" class="btn">Salvar Aluno</button>
</form>
</div>
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color);">
<h3 style="margin-bottom: 1rem;"><i class="fa-solid fa-folder-plus"></i> Novo Curso</h3>
<form method="POST">
<input type="hidden" name="acao_curso" value="1">
<input type="text" name="titulo" placeholder="Nome do Curso" required class="form-control">
<textarea name="descricao" placeholder="Descrição" class="form-control" rows="3"></textarea>
<label style="display: block; margin-bottom: 0.3rem; font-size: 0.9rem; color: var(--text-muted);">Categoria:</label>
<select name="tipo" required class="form-control">
<option value="pago">Curso Pago</option>
<option value="gratuito">Curso Gratuito</option>
</select>
<input type="url" name="imagem_url" placeholder="URL da Capa (Imagem)" class="form-control">
<input type="url" name="link_afiliado" placeholder="Link Landpage / Afiliado" class="form-control">
<button type="submit" class="btn">Salvar Curso</button>
</form>
</div>
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color);">
<h3 style="margin-bottom: 1rem;"><i class="fa-solid fa-video"></i> Nova Aula</h3>
<form method="POST">
<input type="hidden" name="acao_aula" value="1">
<select name="curso_id" required class="form-control">
<option value="">Selecione o Curso...</option>
<?php foreach ($cursos as $c): ?>
<option value="<?php echo $c['id']; ?>"><?php echo htmlspecialchars($c['titulo']); ?> (<?php echo ucfirst($c['tipo']); ?>)</option>
<?php endforeach; ?>
</select>
<input type="text" name="titulo" placeholder="Título da Aula" required class="form-control">
<select name="plataforma" required class="form-control">
<option value="youtube">YouTube</option>
<option value="vimeo">Vimeo</option>
<option value="archive">Archive.org</option>
<option value="drive">Google Drive</option>
</select>
<input type="url" name="video_url" placeholder="URL do Vídeo/Capa" required class="form-control">
<textarea name="caminho" placeholder="Caminho/Comandos Iniciais..." class="form-control" rows="2" style="font-family: monospace;"></textarea>
<textarea name="codigo" placeholder="Código fonte..." class="form-control" rows="4" style="font-family: monospace;"></textarea>
<button type="submit" class="btn">Salvar Aula</button>
</form>
</div>
</div>
<!-- GESTÃO DE ALUNOS (Com botão Editar e Excluir) -->
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 2rem;">
<h3 style="margin-bottom: 1rem;"><i class="fa-solid fa-users"></i> Gestão de Alunos Ativos</h3>
<div style="overflow-x: auto;">
<table style="width: 100%; border-collapse: collapse; text-align: left;">
<tr style="border-bottom: 1px solid var(--border-color);">
<th style="padding: 0.8rem;">Nome</th>
<th style="padding: 0.8rem;">Usuário</th>
<th style="padding: 0.8rem; text-align: right;">Ações</th>
</tr>
<?php foreach ($alunos as $aluno): ?>
<tr style="border-bottom: 1px solid var(--border-color);">
<td style="padding: 0.8rem;"><?php echo htmlspecialchars($aluno['nome']); ?></td>
<td style="padding: 0.8rem;"><?php echo htmlspecialchars($aluno['email']); ?></td>
<td style="padding: 0.8rem; text-align: right; display: flex; gap: 10px; justify-content: flex-end;">
<a href="/admin/editar_aluno.php?id=<?php echo $aluno['id']; ?>" style="color: #38bdf8; text-decoration: none;"><i class="fa-solid fa-pen-to-square"></i> Editar</a>
<a href="?excluir_aluno=<?php echo $aluno['id']; ?>" onclick="return confirm('Tem certeza que deseja excluir este aluno?')" style="color: #ef4444; text-decoration: none;"><i class="fa-solid fa-trash"></i> Excluir</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
<!-- GESTÃO DE CURSOS (Com botão Editar e Excluir) -->
<div style="background: var(--card-bg); padding: 1.5rem; border-radius: 8px; border: 1px solid var(--border-color); margin-bottom: 2rem;">
<h3 style="margin-bottom: 1rem;"><i class="fa-solid fa-book"></i> Gestão de Cursos Ativos</h3>
<div style="overflow-x: auto;">
<table style="width: 100%; border-collapse: collapse; text-align: left;">
<tr style="border-bottom: 1px solid var(--border-color);">
<th style="padding: 0.8rem;">Título</th>
<th style="padding: 0.8rem;">Categoria</th>
<th style="padding: 0.8rem; text-align: right;">Ações</th>
</tr>
<?php foreach ($cursos as $curso): ?>
<tr style="border-bottom: 1px solid var(--border-color);">
<td style="padding: 0.8rem;"><?php echo htmlspecialchars($curso['titulo']); ?></td>
<td style="padding: 0.8rem;"><?php echo ucfirst($curso['tipo']); ?></td>
<td style="padding: 0.8rem; text-align: right; display: flex; gap: 10px; justify-content: flex-end;">
<a href="/admin/editar_curso.php?id=<?php echo $curso['id']; ?>" style="color: #38bdf8; text-decoration: none;"><i class="fa-solid fa-pen-to-square"></i> Editar</a>
<a href="?excluir_curso=<?php echo $curso['id']; ?>" onclick="return confirm('Tem certeza que deseja excluir este curso?')" style="color: #ef4444; text-decoration: none;"><i class="fa-solid fa-trash"></i> Excluir</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
</main>
</body>
</html>