tag - redirect to site php




Redirecionamento de página do PHP (10)

A função header() faz isso:

header("Location: user.php");

Esta questão já tem uma resposta aqui:

O PHP pode fazer uma chamada de redirecionamento depois de executar uma função? Eu estou criando uma função na conclusão do que eu quero redirecionar para um arquivo localizado na mesma pasta raiz. Isso pode ser feito?

 if {
      //i am using echo here
 }

 else if ($_SESSION['qnum'] > 10) { 
            session_destroy();
            echo "Some error occured.";
            //redirect to user.php
        }

A função header() no PHP faz isso, mas certifique-se de chamá-la antes que qualquer outro conteúdo seja enviado ao navegador, ou então você receberá um erro.

JavaScript é uma alternativa se você já enviou o conteúdo do arquivo.



Eu provavelmente configuraria a mensagem como uma variável de sessão, redirecionaria o usuário para outra página que exibe a mensagem e destrói a sessão.


Se você quiser incluir o redirecionamento no seu arquivo php sem necessariamente tê-lo no topo, você pode ativar o buffer de saída na parte superior e, em seguida, chamar o redirecionamento de qualquer lugar dentro da página. Exemplo;

 <?php
 ob_start(); //first line
 ... do some work here
 ... do some more
 header("Location: http://www.yourwebsite.com/user.php"); 
 exit();
 ... do some work here
 ... do some more

Sim, você usaria a função de header .

header("Location: http://www.yourwebsite.com/user.php"); /* Redirect browser */
exit();

É uma boa prática chamar exit() logo depois para que o código abaixo dele não seja executado.

Além disso, a partir da documentação:

Lembre-se que header () deve ser chamado antes de qualquer saída real ser enviada, seja por tags HTML normais, linhas em branco em um arquivo ou pelo PHP. É um erro muito comum ler o código com include (), require (), funções ou outra função de acesso ao arquivo, e ter espaços ou linhas vazias que são emitidas antes do cabeçalho () ser chamado. O mesmo problema existe ao usar um único arquivo PHP / HTML.

Isso significa que você não deve ecoar nada antes da função header() , pois isso provavelmente causará um erro. Além disso, você precisará verificar se esse código também é executado antes de qualquer outra saída.


Usar um javascript como segurança contra falhas garantirá que o usuário seja redirecionado (mesmo que os cabeçalhos já tenham sido enviados). Aqui está:

// $url should be an absolute url
function redirect($url){
    if (headers_sent()){
      die('<script type="text/javascript">window.location=\''.$url.'\';</script‌​>');
    }else{
      header('Location: ' . $url);
      die();
    }    
}

Se você precisa manipular corretamente os caminhos relativos, eu escrevi uma função para isso (mas isso está fora do escopo da questão).


Você pode usar este código para redirecionar em php

<?php
/* Redirect browser */
header("Location: http://example.com/");
/* Make sure that code below does not get executed when we redirect. */
exit;
?>

   $url='the/url/you/want/to/go';
   echo '<META HTTP-EQUIV=REFRESH CONTENT="1; '.$url.'">';

isso funciona bem para mim.


header( "Location: http://www.domain.com/user.php" );

Mas você não pode primeiro fazer um eco e, em seguida, redirecionar.





header