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 é:
- A)a ausência de um comando session_start no início da página;
Certa: sem session_start() no inicio, o PHP nao inicializa nem recupera a sessao para acessar $_SESSION.
- B)o uso de isset para verificar se há um usuário logado;
Errada: isset e uma forma adequada de verificar se a variavel de sessao existe.
- C)a forma de captura de valor, que deveria ser com $_POST;
Errada: a validacao do usuario logado nao depende de $_POST, mas de dados de sessao.
- D)a abertura e o fechamento da estrutura condicional em dois blocos distintos;
Errada: abrir e fechar o if em blocos distintos com PHP/HTML e uma tecnica valida de template.
- E)a falta de um atributo DOCTYPE para o html.
Errada: DOCTYPE influencia a declaracao do HTML, mas nao interfere na logica de autenticacao.
Gabarito: A
Em PHP, toda vez que voce trabalha com variaveis de sessao, o roteiro tem um passo obrigatorio: iniciar a sessao com session_start() antes de tentar ler $_SESSION. Sem isso, a superglobal pode nao estar disponivel corretamente e a checagem de usuario falha, como se voce tentasse abrir a porta antes de colocar a chave na fechadura. No codigo da questao, a ideia de testar se existe um usuario logado com isset($_SESSION["user"]) faz sentido. O problema nao esta no teste em si, mas no fato de que a sessao nao foi iniciada. Em outras palavras, a pagina quer consultar a sessao, mas esqueceu de avisar ao PHP que aquela conversa de sessao com o navegador precisa ser retomada. Por isso, o gabarito A esta correto: sem session_start(), o PHP nao gerencia nem recupera os dados da sessao atual. Em termos praticos, o uso de $_SESSION depende da inicializacao da sessao, e isso e regra basica de PHP, muito cobrada em prova. As demais alternativas tentam distrair com detalhes de HTML ou de captura de dados, mas o erro central e de controle de sessao. Em pagina protegida, o fluxo normal e: session_start() no inicio, depois verificar se existe o indice esperado em $_SESSION, e entao exibir ou nao o conteudo.