Fácil PHP
Recebendo nome via GET
Enunciado
Crie um script PHP que leia o parâmetro nome da URL via $_GET e exiba uma saudação. Se o parâmetro não for informado, mostre "Olá, visitante!".
Requisitos
- Usar
$_GETpara obter o parâmetronome. - Exibir "Olá, [nome]!" quando o parâmetro existir.
- Exibir "Olá, visitante!" quando o parâmetro não existir.
- Usar
htmlspecialchars()para evitar XSS.
Código inicial
<?php
// Seu código aqui
Saída esperada
Olá, Maria!
Ver dica
Use isset($_GET['nome']) para verificar se o parâmetro existe. Não esqueça de escapar a saída com htmlspecialchars().
Mostrar solução
<?php
// Lê o parâmetro 'nome' da URL, se existir
$nome = $_GET['nome'] ?? 'visitante';
// Escapa caracteres especiais para evitar XSS
echo 'Olá, ' . htmlspecialchars($nome) . '!';
Passo a passo
$_GET['nome'] ?? 'visitante'usa o operador de coalescência nula: se$_GET['nome']não existir ou fornull, assume'visitante'.- A variável
$nomerecebe o valor bruto da URL. htmlspecialchars($nome)converte caracteres como<,>,&em entidades HTML, impedindo que o navegador interprete tags.- O
echomonta a string final concatenando as partes.
Por que funciona
O PHP popula automaticamente a superglobal $_GET com os parâmetros da query string. Ao usar htmlspecialchars, qualquer tentativa de injetar HTML ou JavaScript é neutralizada, pois os caracteres são exibidos como texto.
Erros comuns
- Não verificar se o parâmetro existe:
echo $_GET['nome'];gera um avisoUndefined array key "nome"se a URL não tiver o parâmetro. Use??ouisset(). - Esquecer o
htmlspecialchars: se alguém acessar?nome=<script>alert(1)</script>, o script seria executado no navegador. Sempre escape ao exibir dados do usuário. - Usar
htmlspecialcharsna entrada: ele deve ser usado na saída, não ao armazenar. Armazene o dado bruto e escape na hora de exibir.
Outra forma de resolver
Usar filter_input(INPUT_GET, 'nome', FILTER_SANITIZE_SPECIAL_CHARS):
$nome = filter_input(INPUT_GET, 'nome', FILTER_SANITIZE_SPECIAL_CHARS) ?? 'visitante';
echo 'Olá, ' . $nome . '!';
Essa forma já sanitiza na entrada, mas ainda é recomendável escapar na saída.
Saída esperada
Olá, Maria!