Files
acaoopcao/configuracoes.php
T
2026-08-21 22:57:44 +00:00

88 lines
4.0 KiB
PHP

<?php
$titulo_pagina = 'Configurações';
$pagina_ativa = 'configuracoes';
// Precisamos de config.php/auth.php já carregados antes do form processar o
// POST (header.php também os carrega, mas fazemos isso explicitamente aqui em
// cima para: 1) checar a permissão antes de mexer no ambiente; 2) usar
// ao_salvar_ambiente()/AO_URLS antes de qualquer saída).
require_once __DIR__ . '/includes/config.php';
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/auth.php';
ao_exigir_permissao('configuracoes');
$ao_ambiente_nomes = [
'desenvolvimento' => 'Desenvolvimento',
'producao' => 'Produção',
];
$ao_mensagem = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ambiente'])) {
if (ao_salvar_ambiente($_POST['ambiente'])) {
// Redireciona para evitar reenvio do form ao atualizar a página.
header('Location: configuracoes.php?salvo=1');
exit;
} else {
$ao_mensagem = ['tipo' => 'erro', 'texto' => 'Ambiente inválido — nada foi alterado.'];
}
}
if (isset($_GET['salvo'])) {
$ao_mensagem = ['tipo' => 'sucesso', 'texto' => 'Ambiente atualizado com sucesso.'];
}
require __DIR__ . '/includes/header.php';
?>
<h1 class="ao-page-title">Configurações do sistema</h1>
<?php if ($ao_mensagem): ?>
<div class="ao-badge <?= $ao_mensagem['tipo'] === 'sucesso' ? 'ao-badge-alta' : 'ao-badge-baixa' ?>" style="display:inline-block; margin-bottom: var(--ao-space-5); padding: 8px 14px; font-size: var(--ao-fs-sm);">
<?= htmlspecialchars($ao_mensagem['texto']) ?>
</div>
<?php endif; ?>
<div class="ao-card" style="max-width: 560px; margin-bottom: var(--ao-space-6);">
<div class="ao-card-header"><strong>Ambiente</strong></div>
<p style="color: var(--ao-text-muted); font-size: var(--ao-fs-sm); margin-top: 0;">
Define a URL base usada pelo sistema. Em desenvolvimento, use o XAMPP local;
em produção, use o domínio publicado.
</p>
<form method="post" action="configuracoes.php">
<?php foreach (AO_URLS as $chave => $url): ?>
<label style="display:flex; align-items:flex-start; gap: 10px; padding: var(--ao-space-3) 0; border-bottom: 1px solid var(--ao-border); cursor: pointer;">
<input type="radio" name="ambiente" value="<?= htmlspecialchars($chave) ?>" <?= AO_AMBIENTE === $chave ? 'checked' : '' ?> style="margin-top: 3px;">
<span>
<strong style="display:block;"><?= htmlspecialchars($ao_ambiente_nomes[$chave] ?? $chave) ?></strong>
<span class="ao-numeric" style="color: var(--ao-text-muted); font-size: var(--ao-fs-xs);"><?= htmlspecialchars($url) ?></span>
</span>
</label>
<?php endforeach; ?>
<button type="submit" class="ao-btn ao-btn-primary" style="margin-top: var(--ao-space-5);">Salvar ambiente</button>
</form>
</div>
<div class="ao-card" style="max-width: 560px;">
<div class="ao-card-header"><strong>Ambiente ativo</strong></div>
<table class="ao-table">
<tbody>
<tr><td>Ambiente</td><td class="ao-numeric"><?= htmlspecialchars($ao_ambiente_nomes[AO_AMBIENTE] ?? AO_AMBIENTE) ?></td></tr>
<tr><td>URL base</td><td class="ao-numeric"><?= htmlspecialchars(AO_BASE_URL) ?></td></tr>
<tr><td>HTTPS obrigatório</td><td class="ao-numeric"><?= AO_IS_PRODUCAO ? 'Sim' : 'Não' ?></td></tr>
<tr><td>Banco de dados (host)</td><td class="ao-numeric"><?= htmlspecialchars(AO_DB_HOST) ?></td></tr>
<tr><td>Banco de dados (nome)</td><td class="ao-numeric"><?= htmlspecialchars(AO_DB_NOME) ?></td></tr>
<tr><td>Usuário do banco</td><td class="ao-numeric"><?= htmlspecialchars(AO_DB_USUARIO) ?></td></tr>
</tbody>
</table>
<p style="color: var(--ao-text-muted); font-size: var(--ao-fs-xs); margin-bottom: 0;">
A senha do banco não é exibida aqui por segurança. Para alterar usuário/senha de cada
ambiente, edite <code>includes/config.php</code> (bloco <code>AO_BANCOS</code>) diretamente no servidor.
</p>
</div>
<?php require __DIR__ . '/includes/footer.php'; ?>