Ir para conteúdo

POWERED BY:

Arquivado

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

Freisleben

Qual significado do erro Warning: Cannot modify header information - h

Recommended Posts

Ola Amigos,

 

Tenho uma alguns dados que eu trago atraves de uma lista, e cada linha contem um checkbox onde o usuario seleciona uma determinada linha e clica em um botão abrir. O porem é que ao clicar no botão abrir eu estou tentado mandar ele para um formulario passando o id

 

Tela com a lista

Imagem Postada Imagem Postada

 

Trecho do codigo que envia o usuario para a pagina de cadastro passando o id

 

function abrir(){
	$check = $_POST['check'];
	foreach ($check as $id => $valor) {

//teste
  echo "Abri ID" . $id ."<br/>";

  header("Location: principal.php?pag=cadGrupoEmp?id=$id");
	//echo "Id " . $id . " - ";
	//echo "Valor " . $valor . "<br />";
}

}

Mais ao tentar clicar me apresenta o erro abaixo

 

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\qg\principal.php:12) in C:\xampp\htdocs\qg\diarioBordo\action.php on line 33

 

Outra informação, essa lista está dentro da pagina principal, sendo um include.

 

Alguem sabe como eu poderia resolver esse problema para eu direcionar o usuario para um tela de cadastro passando o id para que ele possa editar as informações do formulario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você usa o header(), você não pode executar NENHUM echo.

Tenta tirar aqueles echos ali, acho que é isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

on line 33

 

Tirei o echo, mais continua apresentado o mesmo erro.

 

Veja que o erro acontece na linha 33.

 

header => cabeçalho

 

Isso significa que qualquer saída que venha a acontecer antes do header deve ser removida.

 

Veja:

 

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. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

 

Quando você remover toda e qualquer saída que ocorra antes do envio do cabeçalho HTTP o erro cessará.

 

Documentação da função header: http://br2.php.net/manual/en/function.header.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o codigo do meu arquivo, minha linha 33 é a

header("Location: principal.php?pag=cadGrupoEmp?id=");, como eu poderia fazer para que não apresentasse esse erro.

 

Entendi que a primeira linha deveria ser o header isso? c

 

<?php

$funcao = $_REQUEST["action"];

if (function_exists($funcao)) {
//call_user_func Chama uma função de usuário dada pelo primeiro parâmetro
//http://br2.php.net/manual/pt_BR/function.call-user-func.php
        call_user_func($funcao);
}

function reservar()
{
include'lib/conn.php';
$check = $_POST['check'];
//print_r($check);

foreach ($check as $id => $valor) {

echo "Id " . $id . " - ";
echo "Valor " . $valor . "<br />";

$sql =	"UPDATE tab_diario_bordo SET status = '$valor' WHERE id_bordo = '$id'";
$query = mysql_query($sql) or die ("Erro na alteração do Step no Banco de Dados". mysql_error());
//header("Location: ?pag=listaDiarioBordo");

}
}

function abrir(){
	$check = $_POST['check'];
	foreach ($check as $id => $valor) {
//echo "Abri ID" . $id ."<br/>";
header("Location: principal.php?pag=cadGrupoEmp?id=");

}

}

function cancelar(){
	echo "Cancelar";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi que a primeira linha deveria ser o header isso?

 

Como eu disse, header é cabeçalho...

 

E como qualquer cabeça deve vir antes do corpo, colocar o header antes de qualquer saída resolverá definitivamente o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi João, mais teria outro opção sem precisar usasr header para eu direcionar o usuario para a pagina de cadastro? Como mostro no exemplo do primeiro post?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou assim?

 

function abrir(){
    $id = //O ID DEVE VIR DE ALGUM LUGAR
    header("Location: principal.php?pag=cadGrupoEmp?id=$id");
}

Certifique-se de que nenhum outro output está sendo feito antes de charmar a funcion abrir();

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais teria outro opção sem precisar usasr header para eu direcionar o usuario para a pagina de cadastro?

 

Se você quiser que, quando o usuário clicar em um link/botão ou qualquer coisa semelhante mova-o para a respectiva página de cadastro, você pode usar Javascript:

 

function click( id ){
	window.location.href=[ 'principal.php?pag=CadGrupoEmp&id' , id ].join( '=' );
}

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.