| Solucionando aviso de erro Warning: session_start() |
Buenas pessoal, um erro relativamente comum para quem está programando em PHP é Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at …)
Na internet vão se encontrar muitas respostas e soluções para solucionar esse erro, até colocar um “@” no inicio da linha que está dando esse erro, o que é um erro mais grave do que a própria mensagem.
Vou dar uma breve síntese do que é o problema:
O “session_start()” cria uma sessão baseada em uma variável passada via GET ou um COOKIE, Normalmente o cabeçalho do HTML (<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> …) cria e envia os headers(cabeçalhos) e depois de enviado o compilador do PHP não consegue mais iniciar a “session”.
A solução é simples: coloque o session_start() antes de qualquer conteúdo da página. Note que o PHP é interpretado em sequencia de escrita, ou seja, se você tiver um “include”, “require” ou qualquer outra coisa do tipo antes do erro deve ser considerada a possibilidade de colocar nesse arquivo.
Exemplo: A página com erro é a índex.php mas no início da índex.php tem um include de header.php. O session_start() deve ser colocado no início de header.php, pois é o primeiro código a ser executado pelo compilador.
Esse erro pode ser causado por vários outros motivos, mas esse, como eu havia dito, é o mais comum.
Espero ter ajudado. Qualquer dúvida posta aí.
6 Comentários para “Solucionando aviso de erro Warning: session_start()”
Comente
- Websites para Personal Trainers, Profissionais de Educação Física e Academias
quinta-feira, dezembro 1, 2011, 11:49
Comente - Categoria: Webdesign
- Como personalizar o clique do botão direito do mouse no flash em AS3
quinta-feira, outubro 27, 2011, 12:01
1 Comentário - Categoria: Flash
- Entendo o relatório básico de visitas do site – Google Analytics
segunda-feira, outubro 3, 2011, 16:05
Comente - Categoria: SEO
- clickTag em AS3
terça-feira, agosto 9, 2011, 10:49
Comente - Categoria: Flash
- getURL em AS3
sexta-feira, agosto 5, 2011, 12:05
Comente - Categoria: Flash
- tj:
" Felipe, A mensagem que você recebe é a do... "
Post: Upload de arquivos em PHP (uma única página) - felipe:
" boa tarde, sou novato! copiei este script e diz que... "
Post: Upload de arquivos em PHP (uma única página) - tj:
" Alberto, O que está acontecendo é que o Apache recebe o... "
Post: Upload de arquivos em PHP (uma única página) - Alberto:
" O script funciona e é bem legal, entretanto esta... "
Post: Upload de arquivos em PHP (uma única página) - Joyce:
" POW!!! muito bom "
Post: 50 Sites para downloads gratuitos de vetores
- Sem itens











Alex :
Obrigado mano, estava rodando aki procurando o erro, pq o session_start() estava dentro do header.php
Ednei Queros :
Olá
Gostaria de saber por que ocorre esse erro no script abaixo
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/objetivoea/domains/objetivoead.com.br/public_html/pasta/header.php:7) in /home/objetivoea/domains/objetivoead.com.br/public_html/pasta/restrito.php on line 3
Warning: Cannot modify header information – headers already sent by (output started at /home/objetivoea/domains/objetivoead.com.br/public_html/pasta/header.php:7) in /home/objetivoea/domains/objetivoead.com.br/public_html/pasta/restrito.php on line 42
Encotrei num site que seu eu colocasse o codigo: “output_buffering = on” num php.ini, resolveria, e realemnte no sericodr que eu estava, resolveu, mas ao migrar pra outro, continou dando o mesmo erro.
CODIGO ARQUIVO restrito.php
0)
$MM_referrer .= “?” . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . “accesscheck=” . urlencode($MM_referrer);
header(“Location: “. $MM_restrictGoTo);
exit;
}
?>
CÓDIGO header.php
Só Vídeos
Ednei Queros :
Qualquer informaão mdan pro meu email ed.direito@gmail.com
Ednei Queros :
Se alguem puder me ajudar, entre em contato, que passo os arquivos, aqui nao deu pra colocar os codigo.
tj :
Ednei Queros,
Ao que parece você está tentando criar um header depois que ele já foi criado. Provavelmente no seu novo servidor você não tem acesso ao php.ini.
Tenta colocar o header(“Location: “. $MM_restrictGoTo); antes de todo o código.
O que você está tentando fazer com esse código ?? Uma consulta no BD ???