Cuando programamos en PHP existe una serie de errores y warnings que son muy típicos y que para el programador más novel pueden suponer un problema. Aquí recopilamos algunos de los más típicos, pero ya que estamos, me gustaría que todos nos contarais errores y soluciones a los mismos que encontráis a menudo.
Warning: Cannot modify header information – headers already sent by
Que también podemos encontrar como “Warning: session_start(): Cannot send session cache limiter – headers already sent” o “Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by“. Se produce cuando intentamos modificar las cabeceras del paquete HTTP, cuando ya hemos dejado de emitirlas y estamos emitiendo el cuerpo del paquete.
¿Por qué ocurre esto? Podéis verlo dentro del protocolo. Para solucionarlo deberemos ser muy cuidadosos en dos aspectos:
- Nunca comenzar a emitir el cuerpo antes de tiempo, con un sólo espacio en blanco delante de <?php ya habríamos provocado el problema (se empieza a emitir un espacio en blanco como parte del cuerpo).
- No emitir la cabecera en mitad del cuerpo. Es decir, no usar funciones que la puedan modificar como session_start, cuando estamos ya en el cuerpo de nuestro contenido HTTP.