Meu servidor PHP está apresentando erros de sessão de repente

Meu servidor PHP está apresentando erros de sessão de repente

Estou executando o Xampp, que é basicamente uma configuração LAMP, mas para Windows. Eu tenho usado isso há anos sem problemas e, de repente, todas as páginas dos meus sites que usam sessões PHP estão apresentando erros como este ...

Aviso: session_start() [function.session-start]: Não é possível enviar limitador de cache de sessão - cabeçalhos já enviados (saída iniciada em C:\webserver\htdocs\friendproject2\labs\2.php:1) em C:\webserver\htdocs \friendproject2\labs\2.php na linha 3

Eu percebo que isso acontece geralmente devido a uma de duas coisas.

  1. Se houver algum espaço em branco impresso na tela antes da função session_start() ser chamada, isso às vezes pode fazer com que isso aconteça
  2. Se houver algo impresso na tela/navegador antes de session_start() ser chamado.

Agora meu problema é diferente. Antes desta noite, eu tinha centenas de arquivos que usavam sessões e nenhum deles apresentava nenhum desses erros. Não é apenas um arquivo onde estou ignorando um erro do usuário, isso apenas começou a afetar todos os meus arquivos. Não fiz nenhuma alteração em meu computador esta noite ou recentemente, pelo que me lembro.

O que poderia estar causando isso? Isso está me deixando louco e ninguém parece saber por que isso começou a acontecer. Eu acho que deve ser relacionado ao servidor

Posso até criar um arquivo e colocar em qualquer pasta dos meus servidores web e ser um arquivo simples como esse bvelow e ainda vai dar o erro que mostro acima....

<?PHP
session_start();

$_SESSION['test'] = 'test value';

echo $_SESSION['test'];
?>

Responder1

Verifique se todos os seus arquivos estão salvos com codificação UTF-8. Arquivos codificados em UTF-8 podem incluir uma BOM (Byte Order Mark) para saber a diferença entre a ordem de bytes big endian/little endian. O PHP não entende o BOM e quando atinge isso no início do arquivo, ele assume que está lidando com dados e os envia - já é tarde demais para modificar os cabeçalhos.

A solução seria salvar seus arquivos como ANSI - configure seu IDE/editor

Espero que ajude.

EDITAR:

Se for esse o caso, você provavelmente tem muitos arquivos que precisa converter. Você pode tentar usar este código shell bash que usa iconv para fazer isso por você (adaptado de:https://stackoverflow.com/questions/1182037/osx-change-file-encoding-iconv-recursive)

for files in /mydisk/myfolder/*.php
  do
    iconv -f UTF-8 -t ISO-8859-1 "$files" "${files%.php}"
done

informação relacionada