martes, 15 de octubre de 2013

Warning: Cannot modify header information - headers already sent by...

Intentaba hacer una web modular incrustando la cabecera, el cuerpo y el pie de página en una página principal.

Al correr un script dentro del cuerpo, aparecía el error del título ya que la etiqueta 'header' ya había sido cerrada (</header>). Encontré la solución en esta página.

Nada más tenía que agregar esta función en el archivo de la cabecera:


<?php ob_start(); ?>


Más información sobre otras causas del mismo error (y posibles soluciones).

viernes, 11 de octubre de 2013

Mejor organización con PHP y HTML

Debo recordar que, lugar de utilizar echos o printfs por todos lados, de esta manera:
<?php if(condicion){ echo "Hola :D"; } ?>
es mejor (y más legible) hacerlo de esta forma:

<?php if(condicion){ ?> Hola :D <?php } ?>

Así mantengo la funcionalidad y lo que muestro al usuario separados.

Recién me di cuenta al leer una pregunta en Stack Overflow. Agregaré el enlace cuando lo encuentre.

miércoles, 24 de julio de 2013

HTTP/1.1 100 Continue // "El cliente encontró el tipo de contenido de respuesta 'text/plain', pero se esperaba 'text/xml'."

Contexto: En este último par de meses intenté crear una aplicación (entorno visual) que hiciera uso de un servicio web. Lo realicé en Visual C++ en Visual Studio 2008 (Edición Express).

Problema: Usé una función del mismo IDE (Click derecho en el nombre del proyecto - en el Explorador de Soluciones-, "Agregar referencia web...", etc.). Incluí la biblioteca (mal llamada "librería") en "Form1.h" -creé un proyecto aparte para poder solucionar este problema- y probé una de las funciones más simples del serivicio web.

Era sencillo, una caja de texto y un botón. Al presionar este último, en la caja de texto aparecería la respuesta de la función:


La función tomaba como argumento un String y retornaba otro con dos posibles valores: "Activo" o "No activo". Para recrear el ejercicio solo son necesarias dos líneas de código:


Al correr el programa, aparecía el siguiente error:


Estuve varios días intentando dar con una solución. San Google no pudo ayudarme (más adelante me di cuenta que no pudo porque no estuve buscando lo indicado). Me di por vencido (preferiría decir que quise tomarme un tiempo para despejar mi mente, pero a quién engañaría :P) y seguí con el resto del programa.

Solución: Hace poco (ayer, para ser específicos), me puse a investigar esto nuevamente. Como dije anteriormente, ya había buscado una respuesta en la red de redes sin éxito alguno. En ese entonces había estado buscando esta parte del mensaje de error: "Información adicional: El cliente encontró el tipo de contenido de respuesta 'text/plain', pero se esperaba 'text/xml'." (Reemplazando algunos términos con asteriscos, no soy tan inepto :I).

Esta vez, intenté buscando esta parte: "HTTP/101 100 Continue" y, finalmente y.y, encontré la solución aquí (Coloco el enlace para dar crédito).

La verdad no entiendo por qué ocurre (me gustaría saber, pero me pierdo leyendo explicaciones con tantos términos desconocidos para mi poca experiencia), pero para poder trabajar tranquilamente con el servicio web, solo es necesario agregar la siguiente línea en alguna parte del programa:


System::Net::ServicePointManager = false;



Y listo, ya debería estar funcionando:


Motivo de este blog

He creado este blog para tener un lugar en donde guardar soluciones a problemas que se me presentan en mi día a día. Podría haber usado algún otro servicio para almacenar pequeñas notas, pero escojo un blog (y público) para que este tipo de problemas y soluciones estén disponibles para cualquier otra persona. Más de uno puede ahorrarse algo de tiempo y dolores de cabeza :P.

Normalmente, los posts se compondrán de un contexto, un problema, y su solución. Esto lo haré principalmente para ayudar a mi futuro yo a recordar por qué ciertas entradas fueron un problema.

Cabe resaltar que si tuviera que colocarme en una categoría, lo haría en la de "desarrollador recién iniciando", así que el "público objetivo" es también ese. Vamos, no sé mucho, pero voy aprendiendo :I.

No creo que el diseño del blog sea importante, así que su prioridad es (muy) baja.