lunes, 3 de agosto de 2009

PHP y los problemas con la sesión

PHP tiene un problema (depende de si se lo considera como tal) con las sesiones cuando se acceden a subdominios del sitio actual.

Hoy particularmente me sucedió que tenía un sitio http://femisaluddigital.net.uy el cual corre con el componente Yupp Portal. En una página del portal había un link a otra página pero el dominio del link era a http://www.femisaluddigital.net.uy/...., notar el WWW adelante.

Entonces, cuando si usuario está logueado en el sitio http://femisaluddigital.net.uy e intenta acceder al link que empieza con www la sesión se pierde y el usuario aparece como no logueado, con los problemas que esto trae (el usuario debe volver a loguearse).

Entonces las opciones serían:
  • Que los links a páginas locales se armen dinámicamente considerando la URL actual (viendo si tiene o no www al principio).
  • Guardar la sesión en la base de datos y que tanto para el dominio que empieza con www como para el que no tiene www, la sesión se acceda de la misma forma.
Hay que tener cuidado que para otro subdominio que no sea www (por ejemplo subdominio.femisaluddigital.ney.uy) tal vez quiera acceder a otra sesión, no a la misma del dominio principal. Esto puede ser un problema y el proceso de guardar y pedir información de la sesión debería ser lo suficientemente inteligente como para distinguir casos, nada muy complicado.

Con este post espero ayudar a otros que tengan el mismo problema. Hay algunos comentarios sobre el tema en la página de documentación de PHP sobre las sesiones, donde también indica que ante un cambio de protocolo (HTTP a HTTPS) la sesión también es eliminada. http://us2.php.net/manual/en/book.session.php

miércoles, 8 de julio de 2009

Historia del User Agent

Navegando por internet buscando información acerca de HTTP (estoy estudiando para un próximo exámen de Introducción a las Redes de Computadoras), encontré un artículo muy interesante al respecto de la historia del User Agent que no tiene desperdicio alguno:

http://webaim.org/blog/user-agent-string-history/

Enjoy :)

sábado, 6 de junio de 2009

Feliz cumpleaños Tetris!

Hoy es un día muy especial para todos los amantes del Tetris, el legendario juego creado por Alexey Pajitnov. El juego combina agilidad, estrategia y simplicidad como ningún otro juego en la historia de los video juegos, por algo cuando decimos "Tetris" todos saben de que estamos hablando. Tetris es más que un juego, este trascendió la pantalla para convertirse en parte de la cultura de los que vivimos nuestra adolescencia en los 90's y aún hoy vivimos como un nuevo reto cada vez que volvemos a jugar al Tetris.

Desde aquí nuestro tributo.

Más información:
http://www.rtve.es/noticias/20090602/tetris-cumple-anos/279442.shtml

martes, 2 de junio de 2009

Liberamos la nueva versión de Yupp! v0.1.6.4

Estamos muy contentos de anunciar la liberación de la nueva versión de Yupp PHP Framework.

Estaos agradecidos con los usuarios que últimamente se han interesado en el proyecto, enviándonos sus comentarios, dudas y reportando errores, y es gracias a ellos que podemos seguir mejorando.

Hemos corregido y mejorado muchas cosas desde la versión anterior, entre ellas:

1. Se corrigió y mejoró el web flow.
2. Se agrego el metodo 'validateOnly' a la clase PersistentObject.
3. Correcciones para CRUD y vistas dinamicas.
4. Cambia el nombre de la clase ControllerFilter2 por YuppControllerFilter.
5. Se agregó addslashes en los métodos insert_query y update_query de DAL y stripslashes en PersistentManager, para resolver problemas con caracteres de control de MySQL.
6. Se agregó el helper "pager" para crear links de paginación de registros para los listados.
7. Se agrego el helper orderBy para crear columnas ordenables en los listados.
8. Corrección de restricción de email.
9. Ya no es necesario pasarle $this->params al método "render" de YuppController:
- Antes: return $this->render("show", &$this->params);
- Ahora: return $this->render("show");
10. Corrección del helper "locale_chooser" que generaba XHTML inválido.
11. Se agrega al paginador los params de ordenamiento por columnas en los listados (helper "orderBy") si los hay.


Descargas:

http://code.google.com/p/yupp/downloads/list
http://www.simplewebportal.net/host/1022.htm

TAG SVN:
http://code.google.com/p/yupp/source/browse/#svn/tags/v0164

Cualquier duda, consulta, crítica o reporte de error pueden hacerla en el grupo google (opción "debates > nueva entrada"):
http://groups.google.com/group/yuppframeworkphp


Hasta pronto!

Pablo Pazos Gutiérrez
Líder de proyecto
Yupp PHP Framework

jueves, 23 de abril de 2009

Como ser un buen programador

Este sitio presenta una guía paso a paso de cómo ser un buen programador :D

http://secretgeek.net/howtobeaprogrammer.asp

Que lo disfruten!

jueves, 2 de abril de 2009

Nueva versión de Yupp PHP Framework v0.1.6.3

En esta nueva versión estabilizamos aún más el framework, probándolo con distintas versiones de PHP. Además se corrigieron bugs y se mejoraron algunas características.

Este es el detalle del trabajo realizado:
  1. Corregido que si se crean urls con parametros llamados param_1, param_2, etc, esos se pongan en la propia url sin ?param_1&...

  2. Correccion de clase Filter, el metodo que procesa los params dependía de la cantidad de directorios en la ruta a donde está instalado Yupp Framework, ahora es independiente de donde se instale el framework.

  3. Se quitó devolver la referencia (&) en YuppSession::get porque da error cuando se devuelve NULL.

  4. Correción en clase Helpers: correccion de compatibilidad con PHP 5.2.8.

  5. Corregido el flash que se perdía cuando se hace redirect, los valores se mandan en la url.

  6. Resuelto un pequeño bug en la clase Logger.

  7. Se integró la funcionalidad de submit de forms via ajax, utiliza el plugin forms de jQuery.

  8. YuppDateTime: Se agrega operacion para manipular fechas.

  9. Nueva clase YuppForm2 que suplanta a YuppForm y acepta submit por ajax. Se deja YuppForm hasta la próxima liberación. Se agregó el campo "select" y la forma de pasarle los parámetros a los campos ahora es mediante un array asociativo, y los parámetros desconocidos son ingresados en la tag HTML generada como atributo de la misma.

  10. Se hicieron grandes modificaciones en cómo se definen y ejecutan los filtros de controladores, estos filtros sirven para definir acciones que se ejecutan antes o después de las acciones de los controladores según ciertas reglas (se pueden definir filtros por componente, por controlador, por accion, todas las acciones menos una, etc).

  11. Correccion de metodo PersistentObject.hasErrors, tenia un error en la condicion.

  12. Renombrado de archivo de arranque a components.{componente}.Bootstrap.script.php

  13. Correccion de bug en PersistentManager::generateAll(), se agregaban las restricciones para atributos que todavía no se habían agregado.


Notas de versión completas: http://code.google.com/p/yupp/wiki/YuppPHPFrameworkv0163

Para descargar esta versión se puede hacer directamente desde el sitio de google code o mediante el SVN:

Cualquier duda o sugerencia será bienvenida en nuestro grupo:

Para acceder a la última documentación:


A/C Pablo Pazos Gutierrez
Líder de Proyecto
Yupp PHP Framework

miércoles, 11 de marzo de 2009

Prototype vs jQuery


Navegando en internet encontré esta excelente presentación con la comparación de estos dos grandes de Javascript. Aquí se las dejo: