Questão nº 50

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

FGV2023Analista Judiciário - Análise de SistemasTecnologia da Informação
Gabarito: Aver comentário ↓

No contexto do PHP, analise a estrutura simplificada de uma página Web exibida a seguir, onde a numeração serve meramente como referência a cada uma das linhas.

1 <!DOCTYPE html>

2 <html>

3 <body>

4 <?php

5 $_SESSION["xxxxx"] = "aaaaaaa";

6 $_SESSION["yyyyy"] = "bbbbbbb";

7 ?>

8 </body>

9 </html>

Nesse contexto, considere as três linhas de códigos abaixo.

<?php session_start(); ?>

A inserção em bloco dessas linhas adicionais, na página acima, deve ser feita:

Resposta comentada

Gabarito Alternativa A

session_start() é uma função do PHP que inicia ou retoma uma sessão (um mecanismo para armazenar dados específicos de um usuário entre diferentes páginas). Para funcionar, ela precisa ser chamada antes que qualquer conteúdo (como HTML, espaços em branco ou até mesmo a declaração <!DOCTYPE html>) seja enviado ao navegador, pois ela envia cabeçalhos HTTP (informações que o servidor manda antes do conteúdo da página).

  • (A) Correta: A inserção deve ser feita antes da linha 1. session_start() precisa ser executada antes de qualquer saída de conteúdo (HTML, espaços em branco, etc.) para que possa enviar os cabeçalhos HTTP necessários para gerenciar a sessão. Colocar antes de <!DOCTYPE html> garante que não haverá saída prévia.
  • (B) Incorreta: Entre as linhas 2 e 3 (depois de <html> e antes de <body>) já é tarde demais. O <!DOCTYPE html> e a tag <html> já foram enviados como saída, o que impede session_start() de enviar seus cabeçalhos HTTP.
  • (C) Incorreta: Entre as linhas 3 e 4 (depois de <body> e antes de <?php) também é tarde demais. O <!DOCTYPE html>, <html> e <body> já foram enviados. Esta é uma armadilha comum, pois o aluno pode pensar que, por estar antes do uso de $_SESSION, estaria correto, mas o problema é a saída de HTML prévia.
  • (D) Incorreta: Entre as linhas 7 e 8 (depois do bloco PHP e antes de </body>) é muito tarde. Todo o HTML inicial e o processamento PHP já ocorreram, e a sessão já deveria ter sido iniciada para que $_SESSION pudesse ser usado.
  • (E) Incorreta: Depois da linha 9 (após </html>) é definitivamente tarde demais. A página inteira já foi processada e enviada ao navegador.

Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise 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