Ir para conteúdo

Arquivado

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

André Maretti

Comando p/ substituir o header("Location:...")

Recommended Posts

Aí galera... meu sistema tá saindo... devagarzinho mas tá...rsrsrsTô com um probleminha...Se eu tenho um echo na página o header("Location: ...") não funciona....dá o seguinte erro:

Warning: Cannot modify header information - headers already sent by (output started at /home/micropinhal/www/sys_ftp/conf_login_ftp.php:5) in /home/micropinhal/www/sys_ftp/conf_login_ftp.php on line 23

Alguém sabe o porque...? e como resolver...?!Na verdade eu preciso que uma página chame a outra dependendo da condição de um if... ou seja,... sem o usuário clicar em nenhum link....Então se alguém souber de algum outro comando que faça isso, me manda por favor!valeu.... http://forum.imasters.com.br/public/style_emoticons/default/excl.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ei AAlves...

 

já tinha pesquisado isso no forum mas eu estava colocando no lugar errado....

 

tem q ser no início do arquivo.... não no início do script php.... agora deu certo... valeu!

 

Então pra galera não apanhar como eu nesse negócio... COLOQUE O ob_start(); NO INÍCIO DO ARQUIVO... ANTES DE QUALQUER TAG HTML OU SCRIPT PHP...

 

E O ob_end_flush(); NO FINALZÃO... DEPOIS DE TODAS AS TAGS HTML E TODO O SCRIPT PHP....

 

aí vai um exemplo....

 

<?ob_start(); ?><title>Micro Pinhal - Conferindo Login...</title><body bgcolor="#00CC66" leftmargin="0" topmargin="0" marginwidth="00" marginheight="0"><p align="center"><img src="imagens/banner_ftp.jpg" width="780" height="110" align="middle"></p><p>  </p><?PHP   //REALIZA A CONEXÃO COM O BD   //A variável $conexao pega a resposta desta conexão. Se conectou = True, Se não conectou = False   $conexao = mysql_connect('server','user','senha');       //AVALIA SE A CANEXÃO FUNCIONOU   if ($conexao) {      //SE A CONEXÃO FUNCIONOU...      $sql = mysql_db_query("micropinhal", "SELECT * FROM acesso_ftp WHERE usuario = '" . $_POST[usuario] . "'");      //VERIFICA SE A INSTRUÇÃO SQL ESTÁ CORRETA...      if ($sql){         //SE O COMANDO SQL DEU CERTO...         //GUARDA OS VALORES DA TABELA NA VARIAVEL VALOR.         $Valor = mysql_fetch_array($sql);         //VERIFICA SE ALGUM USUÁRIO COM ESSE NOME FOI ENCONTRADO...         if ($Valor["usuario"]) {                                    if ($Valor["senha"] == $_POST[senha]) {                                       if ($Valor["usuario"] == 'Administrador') {                                       header("Location: admin.php");        }                                    } else {                                    ?>                                    <table width="75%" border="0" align="center" dwcopytype="CopyTableRow">                                    <tr>                                     <td> </td>                                    </tr>                                    <tr>                                     <td><div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><? echo($Valor["usuario"]) ?>,         sua senha não confere.</strong></font></div></td>                                    </tr>                                    <tr>                                    <td> </td>                                    </tr>                                    <tr>                                     <td><div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><a href="login_ftp.php"><em>Voltar</em></a></strong></font></div></td>                                    </tr>                                    </table>                                    <?                                    }         } else {            ?>                    <table width="75%" border="0" align="center">           <tr>            <td> </td>           </tr>           <tr>            <td><div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nome               de Usuário Inválido.</strong></font></div></td>           </tr>           <tr>           <td> </td>           </tr>           <tr>            <td><div align="center"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><a href="login_ftp.php"><em>Voltar</em></a></strong></font></div></td>           </tr>           </table>           <?         }// FECHA IF DA VERIFICAÇÃO DO USUÁRIO      }// FECHA IF DA VERIFICAÇÃO DA INSTRUÇÃO SQL   }// FECHA IF DA VERIFICAÇÃO DA CONEXÃOob_end_flush(); ?>

Valeu...... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa ... ;)

 

Bom, eu, particularmente, considero o uso das funções ob_start() e ob_end_flush() uma gambiarra, das brabas. Se o uso delas é necessário, é sinal de que o código em questão está mal estruturado. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Há vários métodos semânticos de se resolver este problema. No começo, quando eu me deparava com este problema, só pensava numa coisa: refazer o código ! http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

 

Como o manual já dizia, qualquer output antes da função header() gerará um erro. B)

 

- Então, qual a solução ?

 

Simples, reverter a situação. :D

 

- Como ?

 

Passando a instrução que chama este header() para o começo do arquivo. :)

 

- Mas não tem como !

 

Tem sim, é só pensar ... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]’s :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala,uma outra gambiarra muito boa por sinal hauhauhua (obs nao sei se funciona em todos navegadores, mas acredito que sim) eh usar javascript ou meta refresh...ex: <script>window.location="outra pagina.php";</script>ex2: <meta http-equiv="refresh" content="2;url=http://site.com/outra pagina.php">hehehe, soh pra ficar marcado...e parabens pro v1d4l0k4!! =Dhuahua[]sluis fernando

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom, eu, particularmente, considero o uso das funções ob_start() e ob_end_flush() uma gambiarra, das brabas. Se o uso delas é necessário, é sinal de que o código em questão está mal estruturado.  :thumbsup:

Eu tenho um código em que o uso dessas funções é necessário e não é gambiarra... imagine que você queira dar vários includes e jogar qualquer saída de buffer pra uma variável. você só consegue com essas funções... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu, particularmente, considero o uso das funções ob_start() e ob_end_flush() uma gambiarra, das brabas. Se o uso delas é necessário, é sinal de que o código em questão está mal estruturado.  http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

<{POST_SNAPBACK}>

Eu tenho um código em que o uso dessas funções é necessário e não é gambiarra... imagine que você queira dar vários includes e jogar qualquer saída de buffer pra uma variável. você só consegue com essas funções... ;)

<{POST_SNAPBACK}>

Ah sim, esqueci de deixar isto claro. Levei em conta apenas a situação do camarada acima ... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

É lógico que para alguma coisa elas deveriam servir, né ? :P

 

[]’s :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa ... ;)

 

Bom, eu, particularmente, considero o uso das funções ob_start() e ob_end_flush() uma gambiarra, das brabas. Se o uso delas é necessário, é sinal de que o código em questão está mal estruturado.  http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Há vários métodos semânticos de se resolver este problema. No começo, quando eu me deparava com este problema, só pensava numa coisa: refazer o código !  http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

 

Como o manual já dizia, qualquer output antes da função header() gerará um erro. B)

 

- Então, qual a solução ?

 

Simples, reverter a situação. :D

 

- Como ?

 

Passando a instrução que chama este header() para o começo do arquivo. :)

 

- Mas não tem como !

 

Tem sim, é só pensar ...  http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]’s :D

<{POST_SNAPBACK}>

Eu não considero tais funções como: "gambiarras", mas sim como funções/recursos dos quais mtas vezes se fazem necessárias.

 

Minha opinião!

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não considero tais funções como: "gambiarras", mas sim como funções/recursos dos quais mtas vezes se fazem necessárias.

 

Minha opinião!

Abraço!

<{POST_SNAPBACK}>

Concordo contigo amigo ! http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

 

Eu quis dizer que para o caso específico de nosso amigo (da função header()), elas se tornam uma gambiarra. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Desculpe-me por minha explicação escassa ... :(

 

[]’s :D

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.