Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

Erro Warning: session_start() [function.session-start]: Cannot send se

Recommended Posts

Pessoal, meu sistema na minha intranet funcionou perfeitamente, mas quando passei pro servidor de hospedagem me retornou esse erro

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/discomed/www/CCD/home.php:1) in /home/discomed/www/CCD/home.php on line 1

 

a linha 1 é essa

 

<?php session_start(); include("conexao.php"); include("acesso.php"); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem arquivo .htaccess? qual o conteúdo dele?

 

Outra coisa, esse arquivo "home.php" é chamado diretamente ou ele é incluso por algum outro arquivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro "headers already sent" ocorre quando você tenta definir headers após eles já terem sido enviados pelo PHP. O PHP envia os headers quando ocorre a primeira saída, portanto, todas a chamadas para as funções header, header_remove, session_start, session_regenerate_id, setcookie e setrawcookie devem ser feitas antes de qualquer saída.

 

Uma saída pode ser feita com o uso de:

  • echo
  • print
  • var_dump
  • var_export
  • flush, ob_flush
  • Qualquer saída que esteja fora de <?php e ?>, inclusive um espaço em branco.

 

Verifique se não há nada disso em seu arquivo e tente novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

VOU POSTAR MINHAS PAGINAS

 

logar.php

 

<?php session_start(); include("conexao.php");

if(!empty($_POST) and (empty($_POST['usuario']) or empty($_POST['senha']))){

	echo "<script>location.href='index.php'</script>";
	exit;

}

$usuario = mysql_real_escape_string($_POST['usuario']);
$senha = mysql_real_escape_string($_POST['senha']);

$sql = "SELECT * FROM usuarios WHERE (usuario = '". $usuario ."') AND (senha = '". $senha ."') AND (ativo = 1) LIMIT 1";

$query = mysql_query($sql);

if(mysql_num_rows($query) != 1){

	echo "<script>location.href='invalido.php'</script>";
	exit;

}else{

	$resultado = mysql_fetch_assoc($query);

	if(isset($_SESSION)){

		$_SESSION['UsuarioID'] = $resultado['id'];
		$_SESSION['UsuarioNome'] = $resultado['nome'];
		$_SESSION['UsuarioUsuario'] = $resultado['usuario'];
		$_SESSION['UsuarioNivel'] = $resultado['nivel'];
		$_SESSION['UsuarioTempo'] = $resultado['tempo'];
		$_SESSION['UsuarioArea'] = $resultado['area'];

		echo "<script>location.href='home.php'</script>";
		exit;

	}

}

?>

 

acesso.php

 

<?php

$temposessao = 3600;

if($_SESSION["UsuarioTempo"]){ 
if($_SESSION["UsuarioTempo"] < (time() - $temposessao)) { 
	echo "<script type='text/javascript'>alert('Seu tempo expirou!!!');</script>";
	echo "<script>location.href='atualiza_usuario_deslogado.php'</script>";
} 
}

$_SESSION["UsuarioTempo"] = time();

if(isset($_SESSION['UsuarioID'])){

}else{
	echo "<script>location.href='atualiza_usuario_deslogado'</script>";
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso pode não estar diretamente relacionado com a sua dúvida, mas aqui vai uma dica:

 

Para fazer redirecionamentos, não use

echo "<script>location.href='index.php'</script>";

 

Se o usuário estiver com javascript desabilitado no navegador, o redirecionamento não ocorrerá.

 

Use no lugar a função header:

header("Location: index.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, mas o header da erro na pagina, ele não aceita tambem

 

nesse erro que da, não da erro nenhum no código, nem em busca, cadastro nem nada, mas fica essa mensagem, eu podia fazer um error_reporting(0);, mas acho que essa não é a solução

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o header no lugar de "location.href" dá erro, então tem alguma saída em conexao.php

 

Qual o conteúdo de conexao.php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

conexao.php

 

<?php

if(!$conexao = mysql_connect("localhost","root","012345")){
	echo 'Erro ao conectar';
	exit();
}
if(!mysql_select_db("teste", $conexao)){
	echo 'Erro ao selecionar';
	exit();
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova qualquer saída que tenha em conexao.php ou em qualquer outro arquivo.

 

Use header no lugar de location.href para fazer redirecionamentos

 

remova ?> de todos esses arquivos e certifique-se que de que <?php está na primeira linha e na primeira coluna, isso é, que não tem nada, nenhum caractere em branco antes dele

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente não há erro.

 

o que pode estar acontecendo é o caracter utf8

 

verifique se os arquivos php estão como utf8.. se for o caso, converta-os para "utf8-without bom"

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.