Eliminar warning y errores típicos en PHP

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.

Logo PHP

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.
Leer más » 6 Comentarios

Oculta la información de errores y “warnings” en PHP

En ocasiones por comodidad, y sobre todo para ahorrarnos dar más información de la cuenta de cara a la seguridad y a que aparezcan mensajes de errores en la pantalla del cliente, es preferible ocultar la información de depuración que nos devuelve el intérprete PHP mediante las típicas líneas de error y warning.

La forma más cómoda para hacerlo instrucción a instrucción es el uso del prefijo @ delante de la misma. El error o warning seguirá existiendo pero no se generará una salida HTML describiéndola. read more

Leer más » 3 Comentarios