Diéssica 140 Denunciar post Postado Novembro 15, 2011 Estou fazendo um sistema de galeria de fotos, aí estava fazendo a página "Editar álbum", funcionou, já atualiza o título e capa do álbum, porém estou com dificuldade em arrumar o erro que aparece quando eu aperto pra enviar, quando eu quero que redirecione para a página de confirmação. Ele aparece em cima da minha pagina, dizendo isso: Warning: Cannot modify header information - headers already sent by (output started at /home2/th132210/public_html/new/galeria/admin/index.php:88) in /home2/th132210/public_html/new/galeria/admin/editar_albuns.php on line 136 Este é o codigo: $updateGoTo = "?p=albuns"; if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $HTTP_SERVER_VARS['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Novembro 15, 2011 Coloque ob_start(); no começo da página e verifique se da certo. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 15, 2011 Você não pode enviar headers HTTP depois que já iniciou a saída de dados no navegador. output started at /home2/th132210/public_html/new/galeria/admin/index.php:88 Nessa linha provavelmente tem um echo ou html sendo mostrado. Como resolver? Mova toda a lógica que envolve redirecionamento para o início da página, ou use as fuções ob_* :seta: http://php.net/manual/en/function.ob-start.php O que essa função faz é armazenar toda a saída em um buffer até o final da execução. Quando a execução termina, ele pega o conteúdo do buffer e coloca na saída do navegador. Compartilhar este post Link para o post Compartilhar em outros sites
Diéssica 140 Denunciar post Postado Novembro 15, 2011 Coloque ob_start(); no começo da página e verifique se da certo. Este é o começo da minha pagina: <?php require_once('../../Connections/conection.php'); ?> <?php if (!isset($_SESSION)) { session_start(); } No caso, coloco depois de <?php? Você não pode enviar headers HTTP depois que já iniciou a saída de dados no navegador. Nessa linha provavelmente tem um echo ou html sendo mostrado. Como resolver? Mova toda a lógica que envolve redirecionamento para o início da página, ou use as fuções ob_* :seta: http://php.net/manual/en/function.ob-start.php O que essa função faz é armazenar toda a saída em um buffer até o final da execução. Quando a execução termina, ele pega o conteúdo do buffer e coloca na saída do navegador. Sim, tem um echo, que é o do include que eu usei pra fazer aqueles ?p=pagina Onde eu coloco esse ob start? Eu coloco no inicio do codigo <?php e fica a mesma coisa.. <?php ob_start(); // Pure PHP Upload 2.1.2 if (isset($HTTP_GET_VARS['GP_upload'])) { $ppu = new pureFileUpload(); (Codigo continua) Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Novembro 15, 2011 Coloca no página principal do site não no include Exemplo: você tem uma página chamada index.php e nela tem um include chamado contato.php , você deve colocar o ob_start(); na página index.php Compartilhar este post Link para o post Compartilhar em outros sites
Diéssica 140 Denunciar post Postado Novembro 15, 2011 Coloca no página principal do site não no include Exemplo: você tem uma página chamada index.php e nela tem um include chamado contato.php , você deve colocar o ob_start(); na página index.php Coloquei o ob_start na pagina index.php e deixei o editar_albuns.php no codigo normal. Coloquei onde fica meu include do conteudo. Segue o codigo da div do meu index.php que coloquei o ob_start. <div id="wrapper"> <?php ob_start(); if(isset($_GET['p']) && $_GET['p'] != "") { $page = $_GET['p']; $page = str_replace(".", "", $page); $page = str_replace("firstime", "home", $page); $page = "". $page .".php"; if(file_exists($page)) { include("$page"); } else { include("erro.php"); } } else { include("albuns.php"); } ?> </div> Albuns.php é a pagina padrao do include, no menu eu mando abrir ?p=editar_albuns e nesse editar_albuns aparece o erro. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 15, 2011 A princípio é isso mesmo. Mas você tem que colocar no "index.php" ou similar, não em uma página que é incluída por outras... Compartilhar este post Link para o post Compartilhar em outros sites
Diéssica 140 Denunciar post Postado Novembro 15, 2011 A princípio é isso mesmo. Mas você tem que colocar no "index.php" ou similar, não em uma página que é incluída por outras... Mas o meu problema é que o index.php é uma página incluida por outras. É a raiz do sistema. Pq da esse problema de header? Compartilhar este post Link para o post Compartilhar em outros sites
Wesley David 20 Denunciar post Postado Novembro 15, 2011 Você não pode enviar headers HTTP depois que já iniciou a saída de dados no navegador. Adicione o ob_start(); em todas as páginas principais(as primeiras a serem abertas quando acessa a página); Compartilhar este post Link para o post Compartilhar em outros sites
Diéssica 140 Denunciar post Postado Novembro 15, 2011 Adicione o ob_start(); em todas as páginas principais(as primeiras a serem abertas quando acessa a página); Coloquei o ob_start(); no meu primeiro <?php (após ele) do arquivo principal (index.php). Eu tinha colocado no segundo (no include) então não adiantou mesmo. Segue o código usado: <?php ob_start(); //initialize the session if (!isset($_SESSION)) { session_start(); } Muito obrigada MESMO! Compartilhar este post Link para o post Compartilhar em outros sites