Ir para conteúdo

Arquivado

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

Igor Augusto

Warning - Headers already sent

Recommended Posts

Bom dia pessoal,

 

Estou com um problema com este "erro" ao tentar usar a função "session_regenerate_id" para atribuir uma nova id à sessão. Ja verifiquei todos os espaços, BOM, etc... mas ele ainda persiste, alguem me da uma luz?

 

Abaixo TODO código PHP antes do HTML

<?php

@session_start("SessionSITE");

// CRIA SESSAO E GRAVA ID
$sessionID = session_id();

if($_POST['acessar']=='Acessar'){

// VERIFICA SE EXISTE CARRINHO ATIVO
$query_carrinho = mysql_query("SELECT * FROM tb0051_pedidos WHERE sessionPEDIDO = '".$sessionID."'");

	if(mysql_num_rows($query_carrinho)==0){
		
		session_regenerate_id();
		$newSESSIONID = session_id();
		
		$login	= $_POST['usuarioLOGIN'];
		$senha		= md5($_POST['senhaLOGIN']);
		
		$query_cadastros = mysql_query("SELECT * FROM tb0031_cadastros WHERE usuarioCADASTRO= '".$login."' AND senhaCADASTRO= '".$senha."' AND ativoCADASTRO= '1' ") or die (mysql_error());
		$cadastros = mysql_fetch_assoc($query_cadastros);
		


		$cadastraSESSION = mysql_query("INSERT INTO tb0051_pedidos (cadastroPEDIDO, sessionPEDIDO, dataPEDIDO, horaPEDIDO, statusPEDIDO, finalizadoPEDIDO, ativoPEDIDO) 
										VALUES ('".$cadastros['codigoCADASTRO']."','".$newSESSIONID."','".date('Y-m-d')."','".date('H:i:s')."','1','0','1')");

		echo "<script>top.location.href='/area-exclusiva/carrinho'</script>";
	}
	
}

// FINALIZA PEDIDO
if($_GET['pga']=='finalizar'){
	
	// SELECT DOS ITENS DO PEDIDO
	$itensPEDIDO = mysql_query("SELECT * FROM tb0052_itens 
	INNER JOIN tb0051_pedidos ON codigoPEDIDO = pedidoITEM
	WHERE sessionPEDIDO = '".session_id()."'");
	
	// LISTA OS ITENS DO PEDIDO
	while($pedidos = mysql_fetch_assoc($itensPEDIDO)){
		
		// LISTA O ESTOQUE ATUAL
		$queryPRODUTO = mysql_query("SELECT * FROM tb0021_produtos WHERE codigoPRODUTO = '".$pedidos['produtoITEM']."'");
		$estoqueantigoPRODUTO = mysql_fetch_assoc($queryPRODUTO);
		
		// QUEBRA O ESTOQUE ATUAL E RETIRA A QUANTIDADE DO ITEM
		$explodeantigo = explode('|',$estoqueantigoPRODUTO['estoquePRODUTO']);
		$explodeantigo2 = explode(',',$explodeantigo[$pedidos['tamanhoITEM']-1]);
		$novaQUANTIDADE = $explodeantigo2[0].','.($explodeantigo2['1']-$pedidos['quantidadeITEM']);
		
		// REMONTA ESTOQUE COM A QUANTIDADE ATUALIZADA
		if($pedidos['tamanhoITEM']=='1'){
			$produtoPP	= $novaQUANTIDADE;
		}else{
			$produtoPP	= $explodeantigo[0];
		}
		
		if($pedidos['tamanhoITEM']=='2'){
			$produtoP	= $novaQUANTIDADE;
		}else{
			$produtoP	= $explodeantigo[1];
		}
		
		if($pedidos['tamanhoITEM']=='3'){
			$produtoM	= $novaQUANTIDADE;
		}else{
			$produtoM	= $explodeantigo[2];
		}
		
		if($pedidos['tamanhoITEM']=='4'){
			$produtoG	= $novaQUANTIDADE;
		}else{
			$produtoG	= $explodeantigo[3];
		}
		
		if($pedidos['tamanhoITEM']=='5'){
			$produtoGG	= $novaQUANTIDADE;
		}else{
			$produtoGG	= $explodeantigo[4];
		}
		
		if($pedidos['tamanhoITEM']=='6'){
			$produtoXGG	= $novaQUANTIDADE;
		}else{
			$produtoXGG	= $explodeantigo[5];
		}
		
		$novoestoquePRODUTO =	$produtoPP.'|'.
								$produtoP.'|'.
								$produtoM.'|'.
								$produtoG.'|'.
								$produtoGG.'|'.
								$produtoXGG;
		
		// ATUALIZA ESTOQUE
		$updatePRODUTOS = mysql_query("UPDATE tb0021_produtos SET estoquePRODUTO = '".$novoestoquePRODUTO."' WHERE codigoPRODUTO = '".$pedidos['produtoITEM']."'");
	}

$finalizadoPEDIDO = mysql_query("UPDATE tb0051_pedidos SET finalizadoPEDIDO = '1' WHERE sessionPEDIDO = '".$sessionID."'");
session_regenerate_id();

if($finalizadoPEDIDO){
	echo "<script>top.location.href='/area-exclusiva/pagamento'</script>";
}

}

// ADICIONA PRODUTO
if($_GET['pga']=='carrinho' && $_GET['pgb']=='add'){

$codigoPRODUTO = $_POST['codigoPRODUTO'];
$tamanhoPRODUTO = $_POST['tamanhoPRODUTO'];
$corPRODUTO = $_POST['corPRODUTO'];
$sessionPEDIDO = $_POST['sessionPEDIDO'];

$query_pedido = mysql_query("SELECT * FROM tb0051_pedidos WHERE sessionPEDIDO= '".$sessionPEDIDO."'");
$pedido = mysql_fetch_assoc($query_pedido);

$queryADD = mysql_query("INSERT INTO tb0052_itens (pedidoITEM, produtoITEM, quantidadeITEM, corITEM, tamanhoITEM) VALUES ('".$pedido['codigoPEDIDO']."','".$codigoPRODUTO."','1', '".$corPRODUTO."', '".$tamanhoPRODUTO."')");
echo "<script>top.location.href='/area-exclusiva/carrinho/';</script>";
}

// APAGAR PRODUTO
if($_GET['pga']=='apagar-item'){
$codigoPRODUTO = $_GET['pgb'];

$deletaPRODUTO = mysql_query("DELETE FROM tb0052_itens WHERE codigoITEM = '".$codigoPRODUTO."'");
echo "<script>top.location.href='/area-exclusiva/carrinho/';</script>";
}

// EXCLUIR PEDIDO
if($_GET['pga']=='apagar-pedido'){
$selectPEDIDO  = mysql_query("SELECT * FROM tb0051_pedidos WHERE sessionPEDIDO = '".session_id()."'");
$PEDIDO = mysql_fetch_assoc($selectPEDIDO);
$codigoPEDIDO = $PEDIDO['codigoPEDIDO'];
$deletaPRODUTO = mysql_query("DELETE FROM tb0052_itens WHERE pedidoITEM = '".$codigoPEDIDO."'");
//$deletaPEDIDO  = mysql_query("DELETE FROM tb0051_pedidos WHERE sessionPEDIDO = '".session_id()."'");
//session_regenerate_id();
echo "<script>top.location.href='/area-exclusiva/carrinho'</script>";
}


// SAIR
if($_GET['pga']=='sair'){
session_regenerate_id();
unset($_SESSION['usuarioCADASTRO']);
unset($_SESSION['senhaCADASTRO']);

echo "<script>top.location.href='/home'</script>";
}
require_once("includes/area-exclusiva/restrito.php");
?>

Agradeço a todos desde já! :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando é exibido o erro "Headers already sent", ele informa o arquivo e a linha que inicializou o corpo da resposta, poste o conteúdo completo do erro e o arquivo mencionado no mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando é exibido o erro "Headers already sent", ele informa o arquivo e a linha que inicializou o corpo da resposta, poste o conteúdo completo do erro e o arquivo mencionado no mesmo

 

Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /caminho/arquivo.php on line 144

 

Eu ja havia procurado no arquivo, e nessa mesma linha consta a função session_regenerate_id.

Compartilhar este post


Link para o post
Compartilhar em outros sites

/caminho/arquivo.php é esse código que postou no início do tópico?? Porque aqui a linha 144 é uma linha em branco.

 

De qualquer forma, você não deve usar session_regenerate_id mais de uma vez por resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

/caminho/arquivo.php é esse código que postou no início do tópico?? Porque aqui a linha 144 é uma linha em branco.

 

De qualquer forma, você não deve usar session_regenerate_id mais de uma vez por resposta.

 

Na verdade é linha 104.

 

Mas as funções estão dentro de um if, então só será executada caso o if seja verdadeiro, assim não tem como ela pegar as duas, por isso não estou entendendo o pq do erro! :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

104 também é uma linha em branco...

 

Pode ter ficado aqui, mas segue abaixo:

 

...

$finalizadoPEDIDO = mysql_query("UPDATE tb0051_pedidos SET finalizadoPEDIDO = '1' WHERE sessionPEDIDO = '".$sessionID."'");
session_regenerate_id(); <= LINHA 104
if($finalizadoPEDIDO){
echo "<script>top.location.href='/area-exclusiva/pagamento'</script>";
}
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos que me orientaram, realmente o problema era em uma página que estava com a códificação BOM, eu acabei não vendo antes pois estou usando url amigavel e só agora vi que na index tinha algumas includes...

 

Até a próxima pessoal! :bye:

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.