Conheça o Plugfeed | » Início » Programação » PHP » Redirecionamento com PHP
Conheça o Plugfeed | » Início » Programação » PHP » Redirecionamento com PHP -->
 
Avaliação: | Publicado em: 31/08/2007
Redirecionamento com PHP
Gabriel Sobrinho Programador
Redirecionamento com PHP

A idéia é simples, você roda a função com a URL e o tempo e o php redireciona para você. Nunca vi um browser que não funcionasse essa função, caso encontre me avise :)

<?php
function redirecionar($url$tempo)
{
    
$url str_replace('&amp;''&'$url);
        
    if(
$tempo 0)
    {
        
header("Refresh: $tempo; URL=$url");
    }
    else
    {
        @
ob_flush();
        @ob_end_clean();
        header("Location: $url");
        exit;
    }
}
?>


Primeiro trocamos &amp; por & pois o header refresh ou location não aceita ele como deveria. Se você definir um tempo, o header com esse tempo para o redirecionamento será enviado. Se não, o comando ob_flush ob_end_clean limpa o buffer (se você estiver usando ob_start, se não estiver, nada muda) depois enviamos o cabeçalho. Se você está redirecionando com o tempo 0 talvez não seja agradável que o usuário veja o restante da página, por isso adicionamos o exit. Se você não entendeu bulufas, veja como usar:

<?php
redirecionar
('login.php'); // Redireciona imediatamente
redirecionar('login.php'10); // Redireciona depois de 10 seg
?>


Fácil né? Então até a próxima caros amigos...

Humberto Rodrigues
"Nunca vi um browser que não funcionasse essa função, caso encontre me avise"

Você nunca irá encontrar um browser que não execute este script, pq php roda no servidor e não no browser.
Tá precisando estudar mais!

Amigo, a parte de redirecionar com tempo depende do client-side sim. Tanto que ele pode cancelar o redirecionamento se quiser...

Já que disse pra estudar mais sobre isso, me indique um artigo ok?

Abração amigo :) : Não avaliado
o lider <olider@gmail.com>
muito palha, ja vi e feiz coisa melhor q isso!
O Líder, por favor poste para que possamos olhar :) : Não avaliado
Cara, muito bom este script, era exatamente o que eu estava precisando. Valew, obrigado. "Criticar é fácil, difícil é fazer, afinal se o papagaio não falar ele vai só cagar".
Marlon Souza <marlon@comprajato.combr>
Bom codigo mais tenho um eficiente e bem menor que o seu, segue abaixobasta colar no local indicado

<html xmlns="http://www.w3.org/1999/xhtml">
<META HTTP-EQUIV=Refresh CONTENT="0; URL=https://www.comprajato.com.br/index.php" />
<head>

alterando o " CONTENT="0 " para o tempo que queira.
Alfred R. Baudisch <alfred@auriumsoft.com.br>
O artigo vai direto ao ponto que o título indica: Redirecionamento com PHP. Não vejo nada errado, isso é tudo que se tem no assunto mesmo. Parabéns :)
Marlon, e quando queremos redirecionar sem precisar de HTML?

No meu caso, utilizo isso muito em mensagens de erro e sistema de login. O usuário loga e redirecionado, sem HTML.

E outra, redirecionando com PHP é mais rápido do que HTML ;)

Abraços e obrigado a todos que comentaram!

Ps: Alguém tem sugestão para algum artigo? : Não avaliado
Eduardo Carvalho Costa <dudu1533_php@hotmail.com>
Bom, esse modo está correto, gostei dele.
Mas existe outro também, se preferirem, podem usá-lo.

O modo é:

<?
sleep(10);
header("Location: index.php");
?>

Para maiores informações, www.php.net/sleep.

Até mais _
O post tá ótimo, é exatamente isso. Nenhuma das outras opções dadas pelos outros é melhor que essa do post.

Eduardo - User o header não funciona quando a página já teve alguma saída.
Correção!

Coloquei Eduardo e era Gabriel. Certo Gabriel, o header não pode ser usado quando o script já teve alguma saída, logo, às vezes, é interessante usar um javascript para auxiliar.
Alexandre Santos <alexandresul@expanssiva.com.br>
Eduardo este script que você colocou fechou todas

<?
sleep(10);
header("Location: index.php");
?>

mais simples e prático do que isso, só duas vezes isso..
ótimo mesmo, é bem o que eu estava procurando!
Sempre tem invejoso para criticar, se manja tanto pq não mostra, falar é fácil.

O artigo é muito bom ! continue assim. :D
Achei muito legal, pena que algumas pessoas não entendam muito e fiquem falando...
Muito Bom Gabriel, Excelente!!

Parece engraçado, mas o do Amigo Eduardo não imprime nada na tela:

<?php
ob_start();

echo "Redirecionando para a página inicial em 10 segundos";

sleep(10);
header("Location: index.php");
?>

Redireciona mas não aparece a mensagem...

Grande vantagem ele fez ficar falando mal do seu artigo...
Fábio Alves <fabrnr101@gmail.com>
Ótimo post.
direto ao ponto...

parabéns
Ruan Carlos <ruanltbg@gmail.com>
Olá Gabriel Humberto está correto PHP roda no servidor. Porem a sua solução está correta como a do Marlon. Por que usar html e não php? Talvez ele não esteja trabalhando com a linguagem PHP. No mais parabéns pela colaboração. Quem critica o rabo e esp{b}ixa
Infelizmente as pessoas acham mais fácil criticar que vir aqui e postar uma nova idéia. Realmente pode haver vários scripts, já usei em html e na época foi bom, mas agora prefiro este para outro projeto, use o que achar melhor, mas não venham criticar a boa vontade do "amigo" Gabriel, se você tem uma nova idéia ou faria diferente, coloque aqui, mostre sua idéia, seja criativo.
E para quem puder escolher se usa em html ou php, use em php pois é bem mais rápido.
Alex Martins <alexbrx@gmail.com>
Valeu, obrigado. Era tudo que precisava!!!








Um produto Detetive.net