jueves, 16 de abril de 2015

Cannot modify header information - headers already sent by

Este error se genera por el tipo de codificación de los caracteres del archivo. En este caso el archivo a solucionar es un archivo .php que se ha subido a un Servidor Hosting. Generalmente es el programa FTP el que cambia la codificación de este tipo de archivos. En un caso particular, al subir mis archivos con Filezilla, se me presentaron Warning en el navegador al realizar ciertas rutinas que funcionaban correctamente de manera local. Tecnicamente lo que sucede es que cambia a codificación UTF-8 la cual inserta un espacio o caracteres previos al tag de PHP (<?php), lo cual genera Warning con el header de PHP.

La manera en cómo se soluciona este problema es cambiando el tipo de codificación. En mi caso yo lo realízo del siguiente modo: 

1. Abrir el archivo con el programa Sublime Text 2 (ST2)
2. Seleccionar en el menú superior Archivo>Reabrir con codificación>Windows 1252, de esta manera cambiamos la codificación a una codificación válida, en este caso Windows 1252 (ver Imagen 1)
3.  Guardo y lo subo nuevamente o reemplazo el archivo en Hosting.

Imagen 1 - Codificación de caracteres para archivo con ST2

Para editar los archivos directamente en el Hosting debemos:
1. Abrir el directorio con WinSCP
2. Abrir el archivo que presenta el error
3. Una vez abierto el archivo con el editor del programa FTP (WinSCP) dirigirse al menú superior a la opcion Encoding y seleccionar 1252 ANSI y listo.

Nota: fijarse bien que al cambiar la codificación aparece en el archivo unos caracteres previos al tag PHP (<?php), justo al comienzo de las lineas de código, los cuales debemos borrar y guardar los cambios.

No hay comentarios.:

Publicar un comentario