Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Difurlan

Erro no Header("location...");

Recommended Posts

Olá Amigos,

 

Estou usando a seguinte linha de comando para trazer uma outra página:

 

-----------------------------------------------

 

header("location:movimento\logo.php");

 

-----------------------------------------------

 

 

... Mas o php me retorna o erro abaixo:

 

 

-----------------------------------------------

 

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\fin\movimento\create.php:209) in C:\Inetpub\wwwroot\fin\movimento\create.php on line 354

 

Alguém saberia me dizer o que acontece aqui???

 

Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chame header() antes de qualquer saída HTML.

 

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.

Fonte: http://br.php.net/header

 

 

Também é possível controlar o buffer com ob_start()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo,

 

Obrigado pela dica.

 

O que eu preciso é que depois de um pequeno código, meu php chame outra página no lugar da que estava sendo processada.

 

Eis o meu código como exemplo do que estou tentando:

 

------------

<?

session_start();

if (!($_SESSION["Login"]))

{

header("location:..\index.php");

}

?>

<html>

<head>

<title>Pinheiro e d'Arce Pinheiro Advogados</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 

<link href="../estilo" rel="stylesheet" type="text/css">

</head>

</script>

<script src="ajax.js" language="javascript" type="text/javascript"></script>

<script>

<!--

function recuperardados() {

if (document.form1.firstChoice1.checked)

{

 

 

 

 

// funções....

 

 

 

 

}

</script>

 

 

<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="recuperardados()">

<?

require("..\lib_include\conect.php");

require("..\lib_include\contas.php");

 

if (@$_POST["bsn"] != NULL)

{

$idConta=(int)$_POST["idConta"];

$dataMovimento=$_POST["dataMovimento"];

$valor=$_POST["valor"];

$tipo=(int)$_POST["tipo"];

$codigo=$_POST["codigo"];

$descricao=$_POST["descricao"];

$idCategoria=(int)$_POST["idCategoria"];

 

require("..\lib_include\insere_no_banco.php");

$_SESSION["valor"]="";

$_SESSION["descricao"]="";

 

$Aconta=$_SESSION["idConta"];

 

$_SESSION["dataMovimento"]=substr($_SESSION["dataMovimento"],0,10);

$dataMovimento = explode("/",$_SESSION["dataMovimento"]);

$_SESSION["dataMovimento"] = $dataMovimento[2] . "/" . $dataMovimento[1]. "/" . $dataMovimento[0];

 

}

if (@$_POST["bsf"] != NULL)

{

 

$idConta=(int)$_POST["idConta"];

$dataMovimento=$_POST["dataMovimento"];

$valor=$_POST["valor"];

$tipo=(int)$_POST["tipo"];

$codigo=$_POST["codigo"];

$descricao=$_POST["descricao"];

$idCategoria=(int)$_POST["idCategoria"];

 

require("..\lib_include\insere_no_banco.php");

$_SESSION["valor"]="";

$_SESSION["descricao"]="";

 

$Aconta=$_SESSION["idConta"];

 

$_SESSION["dataMovimento"]=substr($_SESSION["dataMovimento"],0,10);

$dataMovimento = explode("/",$_SESSION["dataMovimento"]);

$_SESSION["dataMovimento"] = $dataMovimento[2] . "/" . $dataMovimento[1]. "/" . $dataMovimento[0];

 

header("location:movimento\logo.php");

 

}

 

 

 

O Header Negritado é o que eu desejo fazer.

 

Se eu clicar no botão bsf, o meu código insere no banco e chama uma página com o logotipo da empresa no lugar da página que está processando a inserção!

 

Obrigado novamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

So completando o que o Beraldo e narizgudo disseram ..

ob_start();
session_start();
if (!($_SESSION["Login"]))
{  
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo,

 

Obrigado pela dica.

 

O que eu preciso é que depois de um pequeno código, meu php chame outra página no lugar da que estava sendo processada.

 

Eis o meu código como exemplo do que estou tentando:

 

------------

<?

session_start();

if (!($_SESSION["Login"]))

{

header("location:..\index.php");

}

?>

<html>

<head>

<title>Pinheiro e d'Arce Pinheiro Advogados</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 

<link href="../estilo" rel="stylesheet" type="text/css">

</head>

</script>

<script src="ajax.js" language="javascript" type="text/javascript"></script>

<script>

<!--

function recuperardados() {

if (document.form1.firstChoice1.checked)

{

 

 

 

 

// funções....

 

 

 

 

}

</script>

 

 

<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="recuperardados()">

<?

require("..\lib_include\conect.php");

require("..\lib_include\contas.php");

 

if (@$_POST["bsn"] != NULL)

{

$idConta=(int)$_POST["idConta"];

$dataMovimento=$_POST["dataMovimento"];

$valor=$_POST["valor"];

$tipo=(int)$_POST["tipo"];

$codigo=$_POST["codigo"];

$descricao=$_POST["descricao"];

$idCategoria=(int)$_POST["idCategoria"];

 

require("..\lib_include\insere_no_banco.php");

$_SESSION["valor"]="";

$_SESSION["descricao"]="";

 

$Aconta=$_SESSION["idConta"];

 

$_SESSION["dataMovimento"]=substr($_SESSION["dataMovimento"],0,10);

$dataMovimento = explode("/",$_SESSION["dataMovimento"]);

$_SESSION["dataMovimento"] = $dataMovimento[2] . "/" . $dataMovimento[1]. "/" . $dataMovimento[0];

 

}

if (@$_POST["bsf"] != NULL)

{

 

$idConta=(int)$_POST["idConta"];

$dataMovimento=$_POST["dataMovimento"];

$valor=$_POST["valor"];

$tipo=(int)$_POST["tipo"];

$codigo=$_POST["codigo"];

$descricao=$_POST["descricao"];

$idCategoria=(int)$_POST["idCategoria"];

 

require("..\lib_include\insere_no_banco.php");

$_SESSION["valor"]="";

$_SESSION["descricao"]="";

 

$Aconta=$_SESSION["idConta"];

 

$_SESSION["dataMovimento"]=substr($_SESSION["dataMovimento"],0,10);

$dataMovimento = explode("/",$_SESSION["dataMovimento"]);

$_SESSION["dataMovimento"] = $dataMovimento[2] . "/" . $dataMovimento[1]. "/" . $dataMovimento[0];

 

header("location:movimento\logo.php");

 

}

 

 

 

O Header Negritado é o que eu desejo fazer.

 

Se eu clicar no botão bsf, o meu código insere no banco e chama uma página com o logotipo da empresa no lugar da página que está processando a inserção!

 

Obrigado novamente!

Pra não ficar quebrando a cabeça utilize logo de cara isso aqui que vai funcionar:

CODE
echo "<script>window.location = 'movimento/logo.php'</script>";

Espero ter ajudado, flw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo amor de Deus galera.

 

Eu criei um topico e ninguem deu ideia.

 

É sobre header, negocio é o seguinte:

 

 

Eu envio os seguntes headers:

 

Ex:

 

Pragma: cache

Last-Modified:Fri, 08 Feb 2008 15:18:49 GMT

Expires:Thu, 08 Apr 2008 15:18:49 GMT

Cache-Control: private, must-revalidate, max-age=0

 

 

Mas o broser nao me retorna o header If-Modified-Since

 

 

O que leva uma coisa destas?? e isto funciona no meu IIS mas nao funciona no Apache onde eu acabo de trocar de hospedagem http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

o header If-Modified-Since é responsavel por...?

outra coisa, se o Apache naum retorna esse header para o cliente, basta você mandar o proprio PHP enviar o header...

se você me disser qual a função do header, talvez nos possamos desenvolver um script q retorne o header corretamente...

Abraços xD

 

Pelo amor de Deus galera.

 

Eu criei um topico e ninguem deu ideia.

 

É sobre header, negocio é o seguinte:

 

 

Eu envio os seguntes headers:

 

Ex:

 

Pragma: cache

Last-Modified:Fri, 08 Feb 2008 15:18:49 GMT

Expires:Thu, 08 Apr 2008 15:18:49 GMT

Cache-Control: private, must-revalidate, max-age=0

 

 

Mas o broser nao me retorna o header If-Modified-Since

 

 

O que leva uma coisa destas?? e isto funciona no meu IIS mas nao funciona no Apache onde eu acabo de trocar de hospedagem http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae, beleza?

 

Entao, eu conclui algumas coisa mas ainda nao resolvi o "problema".

 

Conclui que depois que mudei de hospedagem so meu PC o Firefox nao mantem a pagina em cache, coincidencia ou nao mas é o que acontece.

Agora é descobrir o que leva um browser nao comportar como deveria o protocolor HTTP.

 

 

If-Modified-Since é o Header de Request que é mantido quando o Response mandou por ultima vez o Last-Modified.

 

Com estes 2 headers da pra fazer um incrível cache do lado cliente como ja funciona.

 

Este negocio de cache ai é um implementação que estou fazendo no meu Framework PHP.

 

 

Para você testar e ter uma ideia, acesse www.alexsandro.com.br

 

No source tem uma linha comentada que diz de quanto tempo atras o cache existe.

 

 

Falow...

 

o header If-Modified-Since é responsavel por...?

outra coisa, se o Apache naum retorna esse header para o cliente, basta você mandar o proprio PHP enviar o header...

se você me disser qual a função do header, talvez nos possamos desenvolver um script q retorne o header corretamente...

Abraços xD

 

Pelo amor de Deus galera.

 

Eu criei um topico e ninguem deu ideia.

 

É sobre header, negocio é o seguinte:

 

 

Eu envio os seguntes headers:

 

Ex:

 

Pragma: cache

Last-Modified:Fri, 08 Feb 2008 15:18:49 GMT

Expires:Thu, 08 Apr 2008 15:18:49 GMT

Cache-Control: private, must-revalidate, max-age=0

 

 

Mas o broser nao me retorna o header If-Modified-Since

 

 

O que leva uma coisa destas?? e isto funciona no meu IIS mas nao funciona no Apache onde eu acabo de trocar de hospedagem http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem, obrigado! mas valew pela atenção! ;)

 

infelizmente naum tenho a resposta para o seu problema...

 

mas o estilo do seu site é bem original, gostei muito...

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.