Ir para conteúdo

POWERED BY:

Arquivado

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

PaUlO...

[Resolvido] Erro com Session

Recommended Posts

Eu estou tendo o comum erro com o session_start()

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/jcfreita/public_html/Beebod/index.php:3) in /home/****/public_html/**/index.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/jcfreita/public_html/Beebod/index.php:3) in /home/****/public_html/**/index.php on line 3

 

Minha pagina index.php (Somente a parte que interessa):

<html>
<head>
<?php session_start();
include("style.php");
?>
<title>***</title>
<link rel="icon" href="favicon.ico" />
...

Já tentei colocando a parte "<?php session_start(); ?>" até acima da tag <html> mas dá o mesmo problema, mas só que na linha 1...

O que poderia ser?

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa mensagem significa que a função session_start() não pode enviar o cookie da sessão porque os cabeçalhos (HTTP headers) já foram enviados.

 

Normalmente o interpretador envia a saída assim que o comando é processado, por isso você não pode ter um echo, print ou qualquer outra coisa que produza uma saída antes da função session_start() (ou outras funções que precisão modificar os headers).

 

Como você disse que já tentou colocar o código em cima do <html> , isso pode estar acontecendo por que sua página não está em UTF-8 sem BOM. Você deve mudar o encoding da sua página para ele, o próprio notepad++ faz isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha ai cara, esse UTF-8 que você disse, é da "meta" <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />?

Se for eu já uso ela em minhas paginas :/

<html>
<head>
<?php session_start();
include("style.php");
?>
<title>***</title>
<link rel="icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationPassword.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationConfirm.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationSelect.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationPassword.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationConfirm.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationSelect.css" rel="stylesheet" type="text/css" />
</head>
<body>
......

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não amigo, não vou entrar em detalhes aqui pois acho que não irá adiantar, mais pra se resolver isso, instale o notepad++ e abra seu arquivo. Logo apos, vá no menu formatar e selecione a opção UTF-8 SEM BOM e salve.

 

Isso irá retirar o BOM da sua página, que são caracteres ocultos no inicio do código que está gerando seu problema.

 

Download NotePad++

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tinha o notepad++ instalado e fiz isso UTF-8 (SEM BOM), mas não funcionou, coloquei o <?php session_start(); ?> antes do <html> novamente e funcionou com isso agora!

Muito obrigado...

 

Mas o que seria esse "BOM"?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php ob_start(); ?>
<html>
<head>
<?php session_start();
include("style.php");
?>
<title>***</title>
<link rel="icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationPassword.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationConfirm.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationSelect.js" type="text/javascript"></script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationPassword.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationConfirm.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryValidationSelect.css" rel="stylesheet" type="text/css" />
</head>
<body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

BOM - Byte Order Mark - é um identificador para arquivos em UTF-8/16/32, teoricamente para dizer ao interpretador/editor que se trata de um conteúdo codificado como UTF-8, mas o fato é que, em quase todas as circunstâncias, ele é dispensável.

 

Caso o seu interpretador não reconheça a codificação, você poderá ver algo como "" no início de arquivos em utf8 - na verdade antes do início do arquivo, o que faz com que esse código só seja visível em caso de erro - normalmente ele só será visível num editor hexadecimal.

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.