Para que serve $_GET

Para que serve a variável $_GET? Não consegui compreender muito bem pesquisando sobre ela, mesmo vendo a documentação do PHP na qual diz:

Um array associativo de variáveis passadas para o script atual via o método HTTP GET.

Pra pegar o que vc manda na url:

meusite.com.br/index.php?nome=Rodrigo&idade=33

<?php
$nome = $_GET['nome'];
$idade = $_GET['idade'];

Se vc mandar:

meusite.com.br/index.php?nome=Rodrigo

E chamar:

echo $_GET['idade'];

é onde dá o erro de indice de um outro tópico que vc abriu, pegou?

Meios de evitar esses erros:

Testando se chegou GET:

<?php
$nome = null;
$idade = null;
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $nome = $_GET['nome'];
    ...
}
?>

Ou usar as funções de filtro (altamente recomendável principalmente pela segurança):

<?php
$nome = filter_input(INPUT_GET, 'nome');
$idade = filter_input(INPUT_GET, 'idade');

Nesse caso, se o filtro falhar retorna false ou se o indice não vier, retorna null, ficando mais facil de testar/controlar o código…

Obs1: é muito comum no começo do aprendeizado em php usar $_GET e $_POST diretamente, até pra facilitar, porém quanto mais cedo começar com boas praticas melhor ok? (filtros nesse caso são a melhor opção mas com o tempo vc se habitua)

Obs2: se está usando get nos form (se vc não diz o method=“post” o padrão é get fica esperto com isso), é sempre bom usar $_POST ou filtrar pelo INPUT_POST com a função que mostrei…

2 curtidas