Como redirecionar páginas em PHP
Se você desenvolve sites ou aplicações em PHP, em algum momento vai precisar redirecionar o usuário de uma página para outra. Isso pode acontecer quando alguém tenta acessar uma página restrita sem estar logado, após enviar um formulário com sucesso, ou quando uma página foi movida. Neste post, aprenda como redirecionar páginas em PHP.
O que é redirecionamento em PHP?
O redirecionamento de páginas é o processo de enviar um usuário de uma URL para outra automaticamente.
Por exemplo, se um visitante tenta acessar uma página inexistente, você pode redirecioná-lo para a página inicial ou para uma página de erro personalizada. Em PHP, fazemos isso com a função header()
, que envia um cabeçalho HTTP para o navegador, instruindo-o a mudar de página.
Como redirecionar usando o header() em PHP
A função header()
é a forma mais comum de redirecionar páginas em PHP. Vamos direto ao ponto com um exemplo simples:
<?php
// Redirecionar para outra página
header('Location: https://www.exemplo.com/nova-pagina.php');
exit();
?>
Explicação
header('Location: URL')
: Esse comando envia um cabeçalho HTTP para o navegador, indicando a URL de destino para onde o usuário será redirecionado;exit();
: Após o redirecionamento, é importante chamarexit()
para garantir que nenhum código extra seja executado.
Dicas importantes
- Nenhuma saída antes do header(): A função
header()
não pode ser chamada após qualquer saída no navegador. Isso significa que não pode haver nenhumecho
, HTML, ou espaços em branco antes do comandoheader()
, pois o cabeçalho HTTP já teria sido enviado. Caso contrário, você verá o erro “Headers already sent”; - Use exit() após o redirecionamento: Sempre use
exit()
após o redirecionamento para garantir que nenhum outro código seja processado depois da mudança de página.
Exemplo prático: Redirecionamento após formulário
Um caso comum de redirecionamento é após o envio bem-sucedido de um formulário. Por exemplo, se o usuário preencheu um formulário de contato corretamente, você pode redirecioná-lo para uma página de agradecimento:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Processar o formulário aqui...
// Redirecionar para a página de sucesso
header('Location: obrigado.php');
exit();
}
?>
Nesse caso, após o processamento do formulário, o usuário será redirecionado para a página obrigado.php
.
Redirecionamento temporário vs permanente
Existem diferentes tipos de redirecionamentos no protocolo HTTP. Os mais comuns são:
Redirecionamento Temporário (302): Indica que o redirecionamento é temporário, ou seja, a página original ainda pode voltar a ser usada.
header('Location: /nova-pagina.php', true, 302);
exit();
Redirecionamento Permanente (301): Indica que a página foi movida permanentemente, sendo o tipo ideal para migrações de URLs.
header('Location: /nova-pagina.php', true, 301);
exit();
Esse tipo de redirecionamento é importante em SEO, pois o Google e outros mecanismos de busca interpretam um redirecionamento 301 como definitivo, preservando a autoridade da página original.
Redirecionamento condicional
Você também pode criar redirecionamentos condicionais com base em lógica de negócios. Por exemplo, se o usuário tentar acessar uma página protegida sem estar logado:
<?php
session_start();
if (!isset($_SESSION['usuario_logado'])) {
// Se o usuário não estiver logado, redireciona para a página de login
header('Location: login.php');
exit();
}
// O código abaixo só será executado se o usuário estiver logado
Redirecionamento com tempo (redirecionamento delayed)
Caso você queira dar um intervalo de tempo antes de redirecionar, como exibir uma mensagem antes de enviar o usuário para outra página, você pode usar a função meta refresh
com HTML ou simular um atraso com PHP:
Exemplo com HTML:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="5;url=https://www.novapagina.com">
<title>Redirecionando...</title>
</head>
<body>
<p>Você será redirecionado em 5 segundos...</p>
</body>
</html>
Nesse exemplo, o usuário será redirecionado após 5 segundos.
Exemplo com PHP:
<?php
// Esperar 5 segundos antes de redirecionar
sleep(5);
header("Location: https://www.novapagina.com");
exit();
?>
Aqui, o PHP aguarda 5 segundos antes de realizar o redirecionamento.
Redirecionamento 301 (Permanente)
Quando você muda permanentemente uma URL, o redirecionamento 301 é o mais apropriado, pois informa aos mecanismos de busca que a página foi movida permanentemente. Isso pode ajudar a manter o SEO da página antiga. Veja como fazer:
<?php
// Redirecionamento 301 (permanente)
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.novaurl.com");
exit();
?>
Esse redirecionamento é usado principalmente em situações de migração de conteúdo, onde a URL antiga será desativada de forma permanente.
Redirecionar páginas em PHP é uma tarefa simples, mas essencial para uma boa navegação e manutenção de sites.
Usando a função header("Location:")
, você pode facilmente guiar o usuário para a página correta, melhorando a experiência dele e garantindo uma navegação mais fluida.
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? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Sobre o Autor
0 Comentários