1. Home
  2. Hospedagem Wordpress
  3. Header PHP: como usar corretamente a sua função

Header PHP: como usar corretamente a sua função

A função header do PHP é uma poderosa ferramenta que permite aos desenvolvedores enviar cabeçalhos HTTP brutos para o cliente. É essencial para controlar o fluxo de dados entre o servidor e o navegador, e pode ser usada para diversas finalidades, como redirecionamento de URLs, definição de cookies, ou controle de cache. 

Neste artigo, exploraremos como usar corretamente a função header para garantir que seu site ou aplicação web se comporte da maneira esperada, evitando problemas comuns e aproveitando as melhores práticas de programação. 

Vamos mergulhar nos detalhes técnicos e práticos para dominar o uso dessa função crucial no desenvolvimento web com PHP.

O que é “header location” e como funciona?

O “header location” é um cabeçalho HTTP utilizado na função header do PHP para redirecionar o navegador para uma nova URL. Quando você envia este cabeçalho para o navegador, ele automaticamente redireciona o usuário para o endereço especificado. A função header deve ser chamada antes de qualquer saída de conteúdo, como HTML ou texto, para evitar erros.

Aqui está um exemplo de como usar o “header location”:

PHP

<?php

// Redireciona o navegador para a página 'nova_pagina.php'

header('Location: nova_pagina.php');

exit; // Encerra a execução do script para garantir o redirecionamento

?>

No exemplo acima, a função header envia o cabeçalho “Location: nova_pagina.php” para o navegador, que então redireciona o usuário para ‘nova_pagina.php’. O exit é usado após o header para interromper a execução do script e garantir que o redirecionamento ocorra sem enviar mais saídas ao navegador.

É importante notar que se o cabeçalho “Location” for enviado após a saída de conteúdo, um erro será gerado, pois os cabeçalhos HTTP devem ser enviados antes de qualquer conteúdo.

Qual a sua função?

A função header no PHP é usada para enviar cabeçalhos HTTP brutos para o navegador do cliente. É uma parte essencial do protocolo HTTP, que permite ao desenvolvedor controlar aspectos como redirecionamento de páginas, definição de cookies, controle de cache, entre outros. 

Por exemplo, o cabeçalho Location é frequentemente usado para redirecionar o usuário para uma nova URL.

É importante lembrar que a função header deve ser chamada antes de qualquer saída de conteúdo, como HTML ou texto, para evitar erros de cabeçalho já enviados.

Como utilizar de forma correta? – Passo a passo

 

Para utilizar a função header do PHP corretamente, especialmente para redirecionamentos com o cabeçalho Location, siga este passo a passo:

  1. Antes de tudo: Certifique-se de que não houve nenhum envio de conteúdo ao navegador antes da chamada da função header. Isso inclui espaços em branco, tags HTML, ou qualquer saída de texto.
  2. Chamada da função: Use a função header com o cabeçalho Location para especificar a URL de destino para o redirecionamento.
    PHP
    
    <?php
    
    // Redireciona o navegador para 'pagina_destino.php'
    
    header('Location: pagina_destino.php');
    
    ?>
  3. Terminar a execução: Após a chamada da função header, use exit para encerrar a execução do script. Isso evita que o script continue a executar e enviar mais saída ao navegador, o que pode interferir no redirecionamento.
    PHP
    
    <?php
    
    header('Location: pagina_destino.php');
    
    exit; // Encerra a execução do script
    
    ?>
  4. Códigos de status HTTP: Se necessário, você pode especificar um código de status HTTP para o redirecionamento, como 301 para redirecionamentos permanentes ou 302 para temporários (o padrão é 302).
    PHP
    
    <?php
    
    // Redirecionamento permanente para 'pagina_destino.php'
    
    header('Location: pagina_destino.php', true, 301);
    
    exit;
    
    ?>
  5. Teste: Teste o seu script em diferentes navegadores para garantir que o redirecionamento está funcionando como esperado.Lembre-se de que a ordem e a lógica são cruciais ao trabalhar com cabeçalhos HTTP. Qualquer saída antes da chamada da função header pode resultar em erros e comportamentos inesperados.
  6. Evite saídas antes do redirecionamento: Se houver qualquer saída (echo, print, HTML) antes da chamada da função header, o redirecionamento não funcionará e um erro será gerado.
    PHP
    
    <?php
    
    // Isso causará um erro
    
    echo 'Olá, mundo!';
    
    header('Location: pagina_destino.php');
    
    exit;
    
    ?>
  7. Tratamento de erros: Use a função header dentro de uma condição para garantir que o redirecionamento só ocorra se certas condições forem atendidas.
    PHP
    
    <?php
    
    if ($login_sucesso) {
    
        header('Location: painel_usuario.php');
    
        exit;
    
    } else {
    
        echo 'Login falhou!';
    
    }
    
    ?>
  8. Redirecionamento condicional: Você pode usar o redirecionamento para enviar o usuário para diferentes páginas com base em condições específicas.
    PHP
    
    <?php
    
    if ($usuario_tipo == 'admin') {
    
        header('Location: painel_admin.php');
    
    } elseif ($usuario_tipo == 'cliente') {
    
        header('Location: painel_cliente.php');
    
    }
    
    exit;
    
    ?>
  9. Redirecionamento após processamento: Em formulários ou após a execução de alguma lógica, use o redirecionamento para evitar reenvios de formulário.
    PHP
    
    <?php
    
    // Processamento do formulário aqui
    
    // ...
    
    header('Location: formulario_submetido.php');
    
    exit;
    
    ?>
  10. Cabeçalhos adicionais: Além do Location, você pode enviar outros cabeçalhos, como controle de cache ou tipos de conteúdo.
    PHP
    
    <?php
    
    header('Cache-Control: no-cache, no-store, must-revalidate'); // Evita cache
    
    header('Pragma: no-cache'); // Suporte a navegadores antigos
    
    header('Expires: 0'); // Define a data de expiração para o passado
    
    ?>
  11. Testes e depuração: Se o redirecionamento não estiver funcionando, verifique se não há saídas antes da chamada da função header e se o caminho da URL está correto. Ferramentas de desenvolvedor do navegador podem ajudar a identificar cabeçalhos enviados e possíveis erros.
  12. Redirecionamento após ação: Se você estiver realizando uma ação, como salvar informações no banco de dados, e depois quiser redirecionar, faça isso após a ação ser concluída com sucesso.
    PHP
    
    <?php
    
    // Ação, como salvar informações no banco de dados
    
    // ...
    
    // Após a ação ser bem-sucedida, redirecione
    
    header('Location: sucesso.php');
    
    exit;
    
    ?>
  13. Evite mensagens de erro: Certifique-se de que o arquivo PHP não tenha espaços em branco antes da abertura da tag <?php ou após o fechamento da tag ?>, pois isso pode causar erros de cabeçalho.
  14. Utilize caminhos absolutos: Ao especificar a URL no cabeçalho Location, é recomendável usar caminhos absolutos em vez de relativos para evitar confusão sobre o caminho que está sendo seguido.
    PHP
    
    <?php
    
    // Caminho absoluto
    
    header('Location: http://www.seusite.com/pagina_destino.php');
    
    exit;
    
    ?>
  15. Redirecionamento com delay: Se desejar atrasar o redirecionamento, você pode usar a função sleep antes da função header.
    PHP
    
    <?php
    
    // Atrasa o redirecionamento em 5 segundos
    
    sleep(5);
    
    header('Location: pagina_destino.php');
    
    exit;
    
    ?>
  16. Teste em diferentes configurações: Teste o redirecionamento em diferentes servidores e configurações de PHP para garantir que ele funcione em todos os ambientes.
  17. Verifique as configurações do servidor: Alguns servidores podem ter configurações que impedem o uso de certos cabeçalhos ou exigem configurações adicionais para que o header funcione como esperado.
  18. Use ferramentas de desenvolvedor: Utilize as ferramentas de desenvolvedor do navegador para inspecionar os cabeçalhos de resposta e garantir que o header está sendo enviado corretamente.

  19. Documentação e recursos: Consulte a documentação oficial do PHP e outros recursos online para entender todas as capacidades e nuances da função header.
  20. Mantenha-se atualizado: Acompanhe as mudanças nas versões do PHP e nas práticas recomendadas, pois elas podem afetar como a função header deve ser usada.

Possíveis erros e cuidados

Ao trabalhar com a função header do PHP, é importante estar ciente de possíveis erros e tomar certas precauções para garantir que seu código funcione corretamente. Aqui estão alguns dos erros mais comuns e as precauções que você pode tomar.

Headers Already Sent 

Este é um erro clássico que ocorre quando você tenta enviar um cabeçalho após a saída já ter sido iniciada. Isso pode ser causado por espaços em branco antes da tag <?php, saída de conteúdo como HTML ou texto antes da chamada da função header, ou até mesmo por caracteres invisíveis como a marca de ordem de byte (BOM) em arquivos UTF-8.

Redirecionamento Não Funciona

Às vezes, o redirecionamento pode não funcionar se o caminho especificado no cabeçalho Location estiver incorreto ou se houver problemas com as configurações do servidor.

Falha ao Modificar Cabeçalhos

Se você tentar modificar um cabeçalho que já foi enviado, receberá um aviso de que não pode modificar as informações do cabeçalho.

Precauções:

Verifique a Saída Antecipada

Certifique-se de que não há saída antes da chamada da função header. Isso inclui verificar espaços em branco, saída de outras funções ou inclusão de arquivos que possam ter saída própria.

Use Caminhos Absolutos

Ao usar o cabeçalho Location para redirecionamentos, prefira usar URLs absolutas para evitar confusão sobre o caminho que está sendo seguido.

Chame exit Após header

Sempre chame a função “exit” imediatamente após enviar um cabeçalho Location para evitar que o script continue a execução e envie mais saída ao navegador.

Teste em Diferentes Ambientes

Teste seu código em diferentes navegadores e configurações de servidor para garantir que os cabeçalhos estão sendo enviados corretamente.

Manuseie Códigos de Status HTTP

Se estiver enviando códigos de status HTTP, certifique-se de usar o formato correto e de que o código de status é apropriado para a situação.

Consulte a Documentação: Sempre consulte a documentação oficial do PHP para entender todas as capacidades e nuances da função header.

Erro “Cannot modify header information – headers already sent”:
O erro “Cannot modify header information” no PHP geralmente ocorre quando você tenta usar a função header() para enviar cabeçalhos HTTP após já ter enviado saída (output) para o navegador. Isso pode acontecer por vários motivos, como:

  • Espaços em branco antes da tag <?php ou depois da tag ?>.
  • A codificação do arquivo não ser UTF-8 sem BOM (Byte Order Mark).
  • Mensagens de erro ou avisos que foram impressos antes da chamada da função header().
  • Uso de funções como echo, print, ou qualquer outra que gere saída antes da chamada da função header().

Para resolver esse problema, você pode:

  1. Mover a chamada da função header() para antes de qualquer saída ser enviada.
  2. Usar a função ob_start() no início do seu script para armazenar temporariamente a saída em um buffer, permitindo que você envie cabeçalhos a qualquer momento antes de chamar ob_end_flush().

Aqui está um exemplo de como você pode ajustar o código para evitar esse erro:

PHP

<?php

ob_start(); // Inicia o buffer de saída

// ... seu código PHP ...

header('Location: index.php'); // Redireciona o usuário

ob_end_flush(); // Envia o conteúdo do buffer para o navegador

?>

Lembre-se de que qualquer saída, incluindo espaços em branco ou linhas em branco, antes da chamada da função header() pode causar esse erro. Portanto, é importante verificar o seu código cuidadosamente para garantir que não haja saída antes da chamada da função header().

E falando sobre Header PHP

Conheça!

Resolva os desafios de cabeçalho PHP com a agilidade e flexibilidade do Cloud VPS da Locaweb! Assim como um cabeçalho PHP bem configurado é essencial para o funcionamento correto de suas aplicações web, escolher o serviço de Cloud VPS certo é fundamental para a escalabilidade e a performance do seu projeto. 

O Cloud VPS da Locaweb oferece armazenamento em SSD, acesso root, opções de sistema operacional, data center nacional, segurança reforçada e suporte técnico especializado. 

Liberte-se das limitações de hospedagem compartilhada e eleve seu projeto com a infraestrutura robusta do Cloud VPS da Locaweb, líder em hospedagem no Brasil.

Termos de Pesquisa Recorrentes

  • header location php / php header location: Esses termos referem-se ao uso da função header() para redirecionar o navegador para uma nova página. O cabeçalho Location é usado para esse propósito. Exemplo:
PHP

header('Location: http://www.exemplo.com');
  • php header: A função header() é usada para enviar cabeçalhos HTTP brutos para o navegador. É uma função poderosa para controlar o cache, o tipo de conteúdo, o status da resposta e outros cabeçalhos HTTP.
  • php header json: Quando você quer enviar JSON como resposta de uma requisição, você define o cabeçalho Content-Type como application/json usando a função header(). Exemplo:
PHP

header('Content-Type: application/json');

echo json_encode($array);
  • php get header: Não existe uma função chamada get_header() no PHP. No entanto, você pode acessar os cabeçalhos de uma requisição recebida usando a variável superglobal $_SERVER. Por exemplo, $_SERVER[‘HTTP_HOST’] para obter o host.
  • php header redirect: Similar ao header location php, é usado para redirecionar o usuário para outra página. A função header() com o cabeçalho Location é usada para realizar o redirecionamento. Exemplo:
PHP

header('Location: http://www.exemplo.com');

exit;


 

 

 

Este artigo foi útil ?

Artigos relacionados