Questão nº 48

Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 48)

FGV2023Técnico Judiciário - Programação de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓

Roberta está efetuando a manutenção de um sistema em PHP, onde, após um backup de emergência, a verificação de usuário em uma página protegida deixou de funcionar. O código da página é apresentado a seguir.

<html><body> <?php if (isset($_SESSION["user"])) { ?> Esse conteúdo deveria ser exibido <?php } ?> </body></html> Após analisar o código, Roberta descobriu que o problema é:

Resposta comentada

Gabarito Alternativa A

Sessões em PHP são como "memórias" que o servidor guarda sobre um visitante específico enquanto ele navega pelo site, permitindo que informações (como o status de login) persistam entre diferentes páginas. Para que o PHP consiga acessar ou guardar essas informações na memória da sessão, você precisa sempre iniciar a sessão com o comando session_start() no começo de cada página que for usar a sessão.

(A) Correta: O comando session_start() é obrigatório no início de qualquer página PHP que precise usar variáveis de sessão ($_SESSION). Sem ele, o PHP não consegue carregar os dados da sessão existente (ou iniciar uma nova), fazendo com que $_SESSION apareça vazio ou não inicializado, e isset($_SESSION["user"]) retorne false.
(B) Incorreta: O uso de isset() é a forma correta e recomendada para verificar se uma variável (neste caso, $_SESSION["user"]) existe e não é nula. O problema não está na forma de verificação, mas na ausência dos dados da sessão para serem verificados. Armadilha: Pode parecer que isset() é muito "básico" ou que haveria uma função mais específica para login, mas para verificar a existência de uma entrada em um array como $_SESSION, isset() é o ideal. O problema real é que $_SESSION não está sendo carregado.
(C) Incorreta: $_POST é usado para receber dados enviados por formulários HTML via método POST. Sessões ($_SESSION) são para manter dados do usuário entre diferentes requisições de página no servidor. São propósitos completamente distintos e não se substituem.
(D) Incorreta: É uma prática comum e perfeitamente válida em PHP misturar HTML e PHP, abrindo e fechando as tags <?php ... ?> para inserir lógica em blocos HTML. Isso não causa problemas com sessões; é uma questão de estilo de codificação ou templating.
(E) Incorreta: O <!DOCTYPE html> é uma declaração no HTML que informa ao navegador qual versão do HTML está sendo usada, afetando como a página é renderizada. Não tem nenhuma relação com o funcionamento do PHP no servidor ou com o gerenciamento de sessões.

Fonte: FGV TJ-SE Servidor 2023 Técnico Judiciário - Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho