<?php
declare(strict_types=1);

require_once __DIR__ . '/auth.php';

header('Content-Type: text/html; charset=utf-8');

function e(mixed $valor): string
{
    return htmlspecialchars((string) $valor, ENT_QUOTES, 'UTF-8');
}

$pasta = __DIR__ . DIRECTORY_SEPARATOR .
    'uploads' . DIRECTORY_SEPARATOR .
    'termos_assinados';

$resultado = [
    'Caminho' => $pasta,
    'Existe' => is_dir($pasta) ? 'SIM' : 'NÃO',
    'Gravável pelo PHP' => is_writable($pasta) ? 'SIM' : 'NÃO',
    'Permissões' => is_dir($pasta)
        ? substr(sprintf('%o', (int) fileperms($pasta)), -4)
        : '-',
    'Dono numérico' => is_dir($pasta)
        ? (string) fileowner($pasta)
        : '-',
    'Grupo numérico' => is_dir($pasta)
        ? (string) filegroup($pasta)
        : '-',
];

$teste = 'NÃO EXECUTADO';

if (is_dir($pasta)) {
    $arquivoTeste = @tempnam($pasta, '.diagnostico_');

    if ($arquivoTeste !== false) {
        $gravou = @file_put_contents(
            $arquivoTeste,
            'teste ' . date('c')
        );

        $teste = $gravou !== false
            ? 'SUCESSO — PHP criou e gravou um arquivo'
            : 'FALHOU AO GRAVAR';

        @unlink($arquivoTeste);
    } else {
        $teste = 'FALHOU AO CRIAR ARQUIVO';
    }
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Diagnóstico de upload</title>
<style>
body{font-family:Arial,sans-serif;background:#edf3f8;color:#17243a;padding:30px}
main{max-width:760px;margin:auto;background:#fff;border-radius:22px;padding:25px;box-shadow:0 20px 55px rgba(8,57,111,.14)}
h1{color:#08396f}.row{display:grid;grid-template-columns:210px 1fr;gap:10px;padding:12px;border-bottom:1px solid #e3eaf0}
.ok{margin-top:18px;padding:15px;border-radius:14px;background:#e8f8f1;color:#076448;font-weight:bold}
.erro{margin-top:18px;padding:15px;border-radius:14px;background:#fff0f3;color:#922138;font-weight:bold}
code{word-break:break-all}
</style>
</head>
<body>
<main>
<h1>Diagnóstico da pasta dos termos</h1>
<?php foreach ($resultado as $titulo => $valor): ?>
<div class="row">
    <strong><?= e($titulo) ?></strong>
    <code><?= e($valor) ?></code>
</div>
<?php endforeach; ?>

<div class="<?= str_starts_with($teste, 'SUCESSO') ? 'ok' : 'erro' ?>">
    Teste real: <?= e($teste) ?>
</div>
</main>
</body>
</html>
