PHP — Sessão e variável $_SESSION
Gabarito: letra A. O erro no código é a ausência do comando session_start() no início da página. Sem ele, a superglobal $_SESSION não é inicializada, e a verificação isset($_SESSION["user"]) sempre retornará false, impedindo a exibição do conteúdo protegido.
O PHP gerencia sessões através de cookies ou parâmetros de URL, mas é obrigatório chamar session_start() antes de qualquer acesso a $_SESSION. No código fornecido, a página tenta acessar $_SESSION sem essa chamada, o que torna a sessão indisponível.
Alternativa A — ✅ Correta ⟵ GABARITO
A função session_start() é necessária para iniciar ou retomar uma sessão. Sem ela, $_SESSION não existe como array, e isset retorna false. A correção é adicionar <?php session_start(); ?> antes de qualquer saída HTML.
Alternativa B — ❌ Incorreta
O uso de isset é correto para verificar se uma variável está definida e não é null. O problema não está na função de verificação.
Alternativa C — ❌ Incorreta
$_POST captura dados enviados via formulário com método POST, não serve para armazenar dados de sessão persistentes entre páginas. A forma correta para login é $_SESSION.
Alternativa D — ❌ Incorreta
O PHP permite abertura e fechamento de blocos <?php ... ?> no meio do HTML. A estrutura condicional com dois blocos separados (um para abrir a chave, outro para fechar) é perfeitamente válida.
Alternativa E — ❌ Incorreta
A declaração <!DOCTYPE html> é opcional para o funcionamento do PHP e não tem relação com a sessão. Sua falta não causa o problema descrito.
Gabarito: letra A.