Ao criar um sistema web, uma das formas mais comuns de transmitir dados entre páginas é através do método GET. O método GET envia os dados via URL e pode ser útil em situações como pesquisas, navegação de páginas, filtros de produtos, entre outras. Neste post, vamos entender a variável externa GET em PHP e como capturar e usar esses dados com a variável global $_GET
em PHP.
O que é a variável externa GET?
O método GET envia os dados anexados à URL após o ponto de interrogação (?
). Por exemplo, se você acessar a URL exemplo.com/pagina.php?nome=Joao&idade=25
, os parâmetros nome=Joao
e idade=25
estão sendo transmitidos para o servidor. O PHP captura essas informações através do array associativo superglobal $_GET
.
Exemplo de URL com parâmetros GET:
pagina.php?nome=Joao&idade=25
Aqui, o parâmetro nome
tem o valor “Joao”, e o parâmetro idade
tem o valor “25”. Esses valores podem ser acessados diretamente no PHP.
Passo 1: Criar um link com parâmetros GET
Para enviar dados via GET, podemos criar links ou formulários que anexam as informações à URL. Vamos criar um link que passa o nome e a idade para uma página PHP.
<!DOCTYPE html>
<html>
<head>
<title>Envio de Dados via GET</title>
</head>
<body>
<h1>Envie dados via URL</h1>
<!-- Link com parâmetros GET -->
<a href="processa.php?nome=Joao&idade=25">Enviar Nome e Idade</a>
</body>
</html>
Passo 2: Capturar os dados com o $_GET no PHP
Agora, vamos criar o arquivo processa.php
, que irá receber e processar os dados passados pela URL usando o método GET. No PHP, usamos $_GET
para acessar esses valores.
<?php
// Verificar se os parâmetros existem na URL
if (isset($_GET['nome']) && isset($_GET['idade'])) {
// Captura os dados da URL
$nome = $_GET['nome'];
$idade = $_GET['idade'];
// Exibe os dados capturados
echo "Nome: " . htmlspecialchars($nome) . "<br>";
echo "Idade: " . htmlspecialchars($idade) . "<br>";
} else {
echo "Nenhum dado foi recebido.";
}
?>
Explicação do código
- $_GET: Essa variável superglobal é um array associativo que contém os dados enviados pela URL. Cada parâmetro na URL se torna uma chave no array
$_GET
. - htmlspecialchars(): Utilizamos esta função para escapar caracteres especiais, como
<>
, evitando vulnerabilidades como o Cross-Site Scripting (XSS), onde usuários maliciosos podem injetar código prejudicial na URL. - isset(): Verificamos se os parâmetros
nome
eidade
estão presentes na URL para evitar erros ao tentar acessar valores inexistentes.
Passo 3: Testar o código
Salve o arquivo HTML como index.html
e o PHP como processa.php
. Quando você clicar no link do arquivo HTML, será redirecionado para processa.php
, e os parâmetros passados na URL serão exibidos.
Vantagens e desvantagens do método GET
Vantagens:
- URL visível: As informações são mostradas na URL, o que pode ser útil para compartilhamento e indexação em mecanismos de busca.
- Facilidade de uso: Ideal para consultas rápidas, como filtros e navegação de páginas.
- Sem limite de segurança: Não há necessidade de medidas extras para visualizar dados na URL.
Desvantagens:
- Limite de tamanho: O tamanho dos dados enviados via GET é limitado pela capacidade da URL, o que geralmente é cerca de 2000 caracteres, dependendo do navegador.
- Menos seguro: Como os dados são visíveis na URL, o método GET não deve ser usado para informações sensíveis, como senhas ou dados pessoais.
Enviando dados via GET com formulários
Além de links, também podemos enviar dados via GET usando um formulário HTML. Basta configurar o formulário para usar o método GET:
<!DOCTYPE html>
<html>
<head>
<title>Envio de Formulário com GET</title>
</head>
<body>
<h1>Formulário com GET</h1>
<form action="processa.php" method="GET">
Nome: <input type="text" name="nome"><br><br>
Idade: <input type="number" name="idade"><br><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Neste exemplo, ao clicar em “Enviar”, o navegador enviará os dados do formulário via GET, que serão anexados à URL e capturados pelo PHP da mesma forma.
Validação dos dados no PHP
É sempre uma boa prática validar os dados enviados para evitar entradas incorretas ou maliciosas.
Exemplo de validação simples:
<?php
if (isset($_GET['nome']) && isset($_GET['idade'])) {
$nome = htmlspecialchars(trim($_GET['nome']));
$idade = (int)$_GET['idade'];
// Validação
if (empty($nome)) {
echo "Por favor, insira um nome válido.";
} elseif ($idade <= 0) {
echo "Por favor, insira uma idade válida.";
} else {
echo "Nome: " . $nome . "<br>";
echo "Idade: " . $idade . "<br>";
}
} else {
echo "Nenhum dado foi recebido.";
}
?>
Aqui estamos utilizando trim()
para remover espaços em branco e convertendo a idade para um número inteiro com (int)
para garantir que os dados sejam válidos.
Outro exemplo prático
O método GET captura variáveis de uma URL:
<?php
echo $_GET["pagina"]; //imprime valor recuperado da variável "pagina" da URL
?>
O valor da variável é passado via URL da seguinte forma:
http://localhost/get.php?pagina=5
Também é possível passar mais de uma variável na mesma URL. Para isso basta separar as variáveis com o caractere “&”:
http://localhost/get.php?pagina=5&autor="Benedito"&ano=2016
Os valores das variáveis recebidas via URL são do tipo string. Para convertê-las para outros tipos, utilizamos:
//URL com o valor da variável
http://localhost/get.php?pagina=172
...
// conversão de string para inteiro
$pagina = (int)$_GET["pagina"];
O método GET é amplamente utilizado para transmitir informações pela URL de forma rápida e prática.
Ele é ideal para situações onde os dados precisam ser visíveis ou onde a segurança não é uma prioridade. Ao usar o $_GET
, você pode capturar esses dados facilmente e processá-los em seus scripts PHP.
Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.
CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:
Dúvidas ou sugestões sobre variável externa GET em PHP? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários