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 chamar exit() para garantir que nenhum código extra seja executado.

Dicas importantes

  1. 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 nenhum echo, HTML, ou espaços em branco antes do comando header(), pois o cabeçalho HTTP já teria sido enviado. Caso contrário, você verá o erro “Headers already sent”;

  2. 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.

QUER APRENDER PHP ORIENTADO A OBJETOS OU APERFEIÇOAR O QUE JÁ SABE?

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:

CLIQUE AQUI 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

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *