Baixe o material de estudo
Saudações, futuro(a) aprovado(a)! Professor Gunter Amorim aqui.
Hoje, vamos explorar um dos conceitos mais fundamentais e práticos para qualquer desenvolvedor PHP: as Superglobais. Além de ser figura carimbada no dia a dia do desenvolvedor, essas “variáveis especiais” são cobradas de forma reiterada em diversas bancas. Elas facilitam o manuseio de dados entre diferentes partes de um script. Conhecê-las pode fazer a diferença na sua próxima prova de concurso.
O que são Superglobais?
As Superglobais são variáveis internas do PHP que estão disponíveis em qualquer escopo, sem a necessidade de serem definidas ou passadas como parâmetro. São “super” porque estão acessíveis em todas as áreas do código, o que significa que você pode acessá-las em funções, classes ou em qualquer outra parte do seu script sem complicações. As Superglobais mais comuns em PHP são:
$_GET | $_POST | $_REQUEST | $_SESSION | $_COOKIE |
$_SERVER | $_ENV | $_FILES | $_GLOBALS |
Principais Superglobais e Suas Utilidades
$_GET
O que faz? $_GET armazena dados enviados via URL através do método GET. É ideal para capturar informações visíveis na URL, como parâmetros em uma consulta de pesquisa, filtros ou IDs de itens. Como esses dados são transmitidos pela URL, eles são acessíveis ao usuário, o que significa que devem ser usados para informações que não precisam de segurança extra.
No Front-end temos:
E no Back-end:
// Captura os valores enviados via GET
if (isset($_GET[‘nome’]) && isset($_GET[‘idade’])) {
$nome = $_GET[‘nome’];
$idade = $_GET[‘idade’];
echo “Nome: ” . htmlspecialchars($nome) . “
”;
echo “Idade: ” . htmlspecialchars($idade);
} else {
echo “Os parâmetros ‘nome’ e ‘idade’ não foram fornecidos.”;
}
$_POST
O que faz: $_POST armazena dados enviados com o método POST, o que significa que os dados não são exibidos na URL. Esse método é ideal para envio de informações sensíveis ou grandes, como dados de login, cadastros de usuários e formulários complexos. Por ser mais seguro do que o GET, é amplamente usado para formular dados que precisam ser manipulados no servidor sem que o usuário veja ou modifique.
No Front-end temos:
E no Back-end:
// Captura os valores enviados via POST
if (isset($_POST[‘usuario’]) && isset($_POST[‘senha’])) {
$usuario = $_POST[‘usuario’];
$senha = $_POST[‘senha’];
echo “Usuário: ” . htmlspecialchars($usuario) . “
”;
echo “Senha: ” . htmlspecialchars($senha); // Em uma aplicação real, não exiba a senha!
} else {
echo “Os parâmetros ‘usuario’ e ‘senha’ não foram fornecidos.”;
}
$_REQUEST
O que faz? $_REQUEST combina dados de $_GET, $_POST, e $_COOKIE, oferecendo uma forma prática de acessar informações independentemente do método utilizado. Ele é útil quando você quer acessar informações, mas não sabe de antemão se virão via GET ou POST. No entanto, é recomendável ter cuidado ao usá-lo, pois pode levar a conflitos de segurança, especialmente se houver dados sensíveis envolvidos.
Olha só como fica no código:
// Funciona tanto com $_GET quanto com $_POST
echo “Campo recebido: ” . $_REQUEST[‘campo’];
$_SESSION
O que faz? $_SESSION armazena dados durante a sessão de um usuário, o que significa que as informações permanecem disponíveis enquanto o usuário navega em diferentes páginas ou até fechar o navegador (ou a sessão expirar). Isso é útil para manter informações do usuário, como ID, nome ou status de login, durante toda a navegação.
Olha só como fica no código:
session_start(); // Sempre iniciar a sessão
$_SESSION[‘usuario’] = “Joao”;
echo “Usuário na sessão: ” . $_SESSION[‘usuario’];
$_COOKIE
O que faz? $_COOKIE armazena dados no navegador do usuário, permitindo que as informações sejam persistidas mesmo após o fechamento do navegador. Cookies são usados frequentemente para guardar preferências de usuários, histórico de login, ou dados de navegação entre visitas. É importante definir a duração de um cookie e lembrar que eles podem ser acessados pelo usuário, então informações confidenciais devem ser evitadas.
Olha só como fica no código:
// Definindo o cookie
setcookie(“nome”, “Joao”, time() + 3600); // Expira em 1 hora
echo “Nome do usuário no cookie: ” . $_COOKIE[‘nome’];
$_SERVER
O que faz? $_SERVER contém informações sobre o servidor e o ambiente de execução, como cabeçalhos HTTP, IP do cliente, e detalhes do script em execução. É amplamente usado para obter informações do cliente e do servidor, como o nome do script, o método de requisição (GET ou POST), e o endereço IP do cliente, que podem ser úteis para segurança e personalização.
Olha só como fica no código:
echo “Endereço IP do cliente: ” . $_SERVER[‘REMOTE_ADDR’] . “
”;
echo “Nome do script: ” . $_SERVER[‘PHP_SELF’];
$_ENV
O que faz? $_ENV armazena variáveis de ambiente passadas pelo servidor, o que é especialmente útil para configurar variáveis de sistema, como credenciais de banco de dados ou configurações de aplicativo. Variáveis de ambiente são comumente usadas em servidores para manter informações que devem permanecer constantes em diferentes ambientes, como produção e desenvolvimento.
Olha só como fica no código:
// Exemplo de variável de ambiente no servidor
echo “Nome do servidor: ” . $_ENV[‘SERVER_NAME’];
$_FILES
O que faz? $_FILES gerencia arquivos enviados via formulários, armazenando informações como nome, tipo e localização temporária do arquivo. Esse método é essencial para lidar com uploads de arquivos, pois permite que você processe e mova o arquivo para um local seguro no servidor.
Olha só como fica no código:
// HTML:
echo “Nome do arquivo: ” . $_FILES[‘arquivo’][‘name’] . “
”;
echo “Tipo do arquivo: ” . $_FILES[‘arquivo’][‘type’];
$_GLOBALS
O que faz? $_GLOBALS armazena todas as variáveis globais disponíveis no escopo global, permitindo acesso a qualquer variável do script. Esse recurso é útil, mas deve ser usado com cautela, pois o uso excessivo de variáveis globais pode tornar o código confuso e menos seguro.
Olha só como fica no código 👀:
$minhaVariavel = “Valor Global”;
echo $_GLOBALS[‘minhaVariavel’];
Comparação entre $_GET e $_POST
Tanto $_GET quanto $_POST têm propósitos semelhantes, mas são aplicados em contextos diferentes. $_GET é visível na URL, o que é útil para buscas e navegação, enquanto $_POST oculta os dados, sendo ideal para informações sensíveis. Entender quando usar cada um é essencial para a segurança e a usabilidade das suas aplicações web.
Bora ver como esse assunto é cobrado nos concursos!
1. (FCC/TÉCNICO/PGE AM/2022)
A variáveis predefinidas em PHP, chamadas super globais, estão sempre acessíveis, independentemente do escopo. Considere o exemplo abaixo.
As variáveis predefinidas que podem ser utilizadas corretamente nas lacunas I, II e III são, respectivamente,
a) $_POST, $_SERVER e $_GLOBALS
b) $_SEND, $_HTTP e $_REQUEST
c) $_SERVER, $_SERVER e $_POST
d) $_SERVER, $_SERVER e $_GLOBALS
e) $_SUBMIT, $_HTTP e $_POST
COMENTÁRIO
A alternativa correta é a letra A. Explicação:
- Lacuna I ($_SERVER[‘PHP_SELF’]): Utilizado para definir que o formulário será enviado para a própria página. Isso permite que a página processe o próprio envio, sendo uma prática comum para formulários.
- Lacuna II ($_SERVER[‘REQUEST_METHOD’]): Verifica o método de requisição HTTP utilizado. No caso, verifica se o método é “POST” para garantir que o código só processe o formulário se ele for enviado por esse método.
- Lacuna III ($_POST[‘cargo’]): Captura o valor enviado pelo campo cargo do formulário usando o método POST. Utiliza htmlspecialchars() para evitar injeções de código.
Essas superglobais são essenciais para a manipulação de dados em formulários PHP.
2. (INSTITUTO AOCP/ANALISTA/FUNPRESP-JUD/2021)
Quanto ao desenvolvimento web, julgue o seguinte item.
Quando enviamos um arquivo através de um formulário para o PHP, ele cria a super global $_FILES, no mesmo estilo das super globais $_GET e $_POST. Cada campo do tipo file é colocado em um array dentro de $_FILES.
COMENTÁRIO
A afirmação está correta. A superglobal $_FILES é usada para lidar com arquivos enviados por formulários HTML, funcionando de forma similar a outras superglobais como $_GET e $_POST. Quando um campo de entrada de tipo file é submetido, o PHP armazena as informações do arquivo (nome, tipo, tamanho, localização temporária, etc.) em um array dentro de $_FILES, facilitando o tratamento dos arquivos enviados pelo usuário.
3. (EPL/ANALISTA/FHSTE – RS/2024)
Considere as assertivas abaixo sobre a linguagem de programação PHP:
I. A variável superglobal $_GET receberá os dados por meio de uma solicitação http.
II. Diferente do $_GET, a variável superglobal $_POST receberá os dados pela interface de transporte do navegador.
III. Para se criar uma constante em PHP, utiliza-se a função define( ).
Conforme as assertivas, responda a alternativa correta:
Alternativas
a) Somente I está correta
b) Somente II está correta
c) Somente I e II estão corretas
d) Somente I e III estão corretas
COMENTÁRIO
A alternativa correta é a letra D. Explicação:
- Assertiva I: Correta. A superglobal $_GET recebe dados enviados pelo método GET, que aparecem na URL. É usada para transmitir parâmetros simples, como filtros e buscas.
- Assertiva II: Incorreta. $_POST recebe dados enviados pelo método POST, mas esses dados são enviados no corpo da requisição HTTP, não sendo visíveis na URL. Isso o torna adequado para informações sensíveis.
- Assertiva III: Correta. A função define() é usada para criar constantes em PHP, que são valores fixos e imutáveis durante a execução do script.
Conclusão
As Superglobais são ferramentas poderosas no PHP, permitindo o gerenciamento e a transferência de dados de maneira eficiente. É um conhecimento que tem um excelente custo-benefício no estudo da linguagem, pois decorando o funcionamento das principais superglobais, já te subsidia para responder um grande número de questões.
Espero que esse guia tenha sido útil! Nos encontraremos no próximo artigo!
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:
Fonte: Gran Cursos Online