Difurlan 0 Denunciar post Postado Fevereiro 8, 2008 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
Beraldo 864 Denunciar post Postado Fevereiro 8, 2008 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
Difurlan 0 Denunciar post Postado Fevereiro 8, 2008 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
narizgudo 0 Denunciar post Postado Fevereiro 8, 2008 Acho que uma solução mais simples é usar o ob_start(), assim você pode usar um header() em qualquer lugar Compartilhar este post Link para o post Compartilhar em outros sites
JackDenio 0 Denunciar post Postado Fevereiro 8, 2008 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
NSF 0 Denunciar post Postado Fevereiro 8, 2008 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
williamhrs 0 Denunciar post Postado Fevereiro 8, 2008 uma coisa sobre o ob_start, ele nao muda em nada o processamento nao ? Compartilhar este post Link para o post Compartilhar em outros sites
Difurlan 0 Denunciar post Postado Fevereiro 8, 2008 Valeu amigos. As dicas funcionaram perfeitamente. T+ Compartilhar este post Link para o post Compartilhar em outros sites
Alexsandro XPT 0 Denunciar post Postado Fevereiro 8, 2008 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
Dórian Conde Langbeck 0 Denunciar post Postado Fevereiro 10, 2008 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
Alexsandro XPT 0 Denunciar post Postado Fevereiro 11, 2008 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
Dórian Conde Langbeck 0 Denunciar post Postado Fevereiro 11, 2008 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
Alexsandro XPT 0 Denunciar post Postado Fevereiro 11, 2008 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