Problema con refresh en envio POST el Patrón POST/REQUEST/GET en PHP.

Este mensaje de error que un usuario obtiene cuando intenta refrescar o regresar a la página a través de las flechas del historial de navegación realmente nos molesta. Es entendible, ya que el navegador a menudo nos dice “¡Esto podría significar que pagarás por el bien dos veces!”.

La primera forma de arreglar esto es enviando todo el contenido del formulario a través de una petición AJAX. Pero si el usuario tiene javascript deshabilitado entonces necesitarás ir a mi siguiente recomendación.

El patrón POST/REQUEST/GET (PRG) elimina esa posibilidad al no permitir nunca al usuario llegar a la página en la cual los datos POST han sido enviados. Poniéndolo más simple, donde sea que quieras datos POST, tómalos y luego redireccíonalo inmediatamente.

Realizas las redirección usando HTTP1.1 303, y aunque eso suena
un poco raro es para eso que fue planeado ese estado.

En ese ejemplo usé una SESSION para poder dar un feedback o
retroalimentacion. Sesiones son prácticas cuando no quieres poner
datos sensibles en la URL.
PRG es particularmente importante estos dias con la popularidad que
esta alcanzando las aplicaciones javascript de una página.

Problemas en el servidor WAMP, simbolo amarillo (Skype o SQLSERVER 2008)

Si estas teniendo un problema con tu servidor WAMP donde no empieza y el icono en el área de notificación de windows se mantiene de color amarillo entonces entenderás mi frustración. Después de un poco de búsqueda en google y aún no encontrar una solución, (al menos no la que relaciona el problema con Skype) logré encontrar el problema.

Empecé verificando el log de errores dentro de WAMP y determinar si era apache el que no iniciaba, después de encontrar apache en los servicios bajo las herramientas administrativas (ctrl + R , tipear “services.msc” sin comillas) aún asi no podía arrancar apache manualmente. Es cuando supe que otro programa también debía estar usando el puerto 80.

Recientemente había instalado SQL Server (MSSSQLSERVER) con sus servicios por defecto encendidos, uno de los cuales era el que estaba ocasionando el problema, se trata de “SQL Server Reporting Services” que también estaba ocupando el puerto 80 y en consecuencia bloqueando el arranque de apache.

Una vez detenido este servicio a través de (Microsoft SQL Server 2008 R2 ->configuration tools->”SQL Server configuration Manager” se abre un dialogo, selecciona  ”SQL Server Services” y en el panel derecho doble click a “SQL Server Reporting Service” en la pestaña “log on” por defecto clickear “stop” y en la sgte pestaña Service selecciona el combo de start mode le dan a “Manual” para que la próxima vez sea necesario volver a esa pestaña para habilitar ese servicio manualmente si es que alguna vez sea necesario usarlo).

Skype también usa el puerto 80 y por lo tanto puede causar el mismo problema, sin embargo puedes re-configurar Skype para que use otro puerto.

Mi consejo a todos que están teniendo este problema es que se pongan a recordar que programas instalaron últimamente y que desde ese entonces no arranca WAMP lo más probable es que sea un problema análogo con los otros 2 programas mencionados (osea que también están usando el puerto 80) así que des-habiliten esos programas o configurenlo para que usen otro puerto.

Bueno eso es todo por ahora espero que les haya sido de utilidad mi post, que tengas un buen día luego de solucionar este problema.

Ctrl+Shift+R (o Ctrl+F5): Recargando la página, sobre-escribiendo la caché

algunas veces cuando recargas una página (con F5 o Ctrl + R) obtienes la misma página con el contenido viejo a pesar de que sabes que hay una actualización.

¿porqué sucede esto? bien, cuando cargas una página, tu navegador almacena una copia local en tu computadora — esto es la llamada “caché”. cada vez que visitas una página, tu navegador pregunta al servidor remoto (el dueño de la página que solicitas) si hay alguna actualización frente a la versión que ya tenemos cacheada en nuestra computadora. si el servidor responde “si”, entonces el navegador recupera la página actualizada.

si la fecha de la última actualización no esta después de la fecha que tienes en tu copia local, entonces el navegador te mostrará la copia local, ahorrándote ancho de banda y tiempo.

En ocasiones se mete la pata (usualmente debido a que el servidor esta retornando mal los datos acerca de si la página fue actualizada). asi que si sabes que hay una actualización, necesitas recargar la página, sobre-escribiendo la caché.

para lograr eso, presiona Ctrl+Shift+R, or Ctrl+F5 — esto es la comúnmente llamada “recarga forzada”.

Una nota especial para los que nos dedicamos al desarrollo web, cuando probamos nuestros nuevos scripts (ya sean js o css) es necesario aplicar Ctrl+F5 para recuperar las modificaciones que hallamos hecho a nuestros scripts sino se recargará la copia cacheada sin los cambios nuevos que queremos visualizar ocasionandonos dolores de cabeza.