Mi servidor PHP da errores de sesión de repente

Mi servidor PHP da errores de sesión de repente

Estoy ejecutando Xampp, que es básicamente una configuración LAMP pero para Windows. Lo he estado usando durante años sin problemas y, de repente, todas las páginas de mis sitios que usan sesiones PHP ahora dan errores como este...

Advertencia: session_start() [function.session-start]: No se puede enviar el limitador de caché de sesión; los encabezados ya se enviaron (la salida comenzó en C:\webserver\htdocs\friendproject2\labs\2.php:1) en C:\webserver\htdocs \friendproject2\labs\2.php en la línea 3

Me doy cuenta de que esto sucede por 1 de 2 cosas en general.

  1. Si hay algún espacio en blanco impreso en la pantalla antes de que se llame a la función session_start(), eso a veces puede causar que esto suceda
  2. Si hay algo impreso en la pantalla/navegador antes de llamar a session_start().

Ahora mi problema es diferente. Antes de esta noche, tenía cientos de archivos que usaban sesiones y ninguno mostraba ninguno de estos errores. No es solo un archivo el que paso por alto un error de usuario, sino que esto empezó a afectar a todos mis archivos. No recuerdo haber realizado ningún cambio en mi computadora esta noche ni recientemente.

¿Qué podría estar causando esto? Me está volviendo loco y nadie parece saber por qué empezó a suceder esto. Creo que debe estar relacionado con el servidor.

Incluso puedo crear un archivo y ponerlo en cualquier carpeta de mi servidor web y ser un archivo simple como este a continuación y todavía dará el error que muestro arriba....

<?PHP
session_start();

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

echo $_SESSION['test'];
?>

Respuesta1

Compruebe si todos sus archivos están guardados con codificación UTF-8. Los archivos codificados en UTF-8 pueden incluir una BOM (marca de orden de bytes) para diferenciar entre el orden de bytes big endian y little endian. PHP no entiende la BOM y cuando llega a eso al principio del archivo, asume que se trata de datos y los envía; para entonces ya es demasiado tarde para modificar los encabezados.

La solución sería asegurarse de guardar sus archivos como ANSI: configure su IDE/editor

Espero eso ayude.

EDITAR:

Si este es el caso, probablemente tengas muchos archivos que necesites convertir. Puedes intentar usar este código de shell bash que usa iconv para hacerlo por ti (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

información relacionada