Cómo evitar la inyección SQL en PHP

Uno de los fantasmas más temidos por quienes contratan servicios de desarrollo (especialmente cuando se trata de su primera experiencia) es el de los ataques de hackers. Si bien es imposible asegurar al 100% un sistema (de software o de cualquier otro tipo), existe una serie de buenas prácticas que disminuyen sensiblemente la probabilidad de ocurrencia de… Seguir leyendo Cómo evitar la inyección SQL en PHP

Un ejemplo de uso del patrón strategy en PHP

Hace poco, trabajando en una mejora para un sistema que desarrollé para un cliente me pasó lo siguiente: Una parte del trabajo de la aplicación era obtener información financiera de diferentes fuentes, básicamente se trataba de obtener precios históricos de bonos. Existían diferentes fuentes de consulta debido a que la información no siempre estaba disponible en todos… Seguir leyendo Un ejemplo de uso del patrón strategy en PHP

Cómo evitar la expiración de las sesiones en PHP

En un proyecto que hice para un cliente me sucedió algo que no había previsto: un formulario dinámico resultó muy largo para la persona que tenía que realizar la carga y, cuando terminó el sistema la deslogueó automáticamente y perdió su trabajo 🙁 Analizando un poco el problema me di cuenta de que la sesión… Seguir leyendo Cómo evitar la expiración de las sesiones en PHP

Cómo conectarse a bases de datos distintas de MySQL desde PHP

Si bien es casi una redundancia hablar de PHP+MySQL (Algo así como GNU y Linux), la realidad es que esta santa asociación es casi casual. En PHP no existe un motor de base de datos preferido y otros de segunda. No voy a decir que PHP puede conectarse a cualquier motor de bases de datos (Habiendo pasado por… Seguir leyendo Cómo conectarse a bases de datos distintas de MySQL desde PHP

Cómo mostrar resultados de un proceso largo en tiempo real en una aplicación web

Un caso interesante en el que me tocó trabajar fue la implementación de un sistema de gamification para una red social de viajeros en la que trabajaba. Los responsables del producto estaban muy interesados en fomentar la generación de contenido por parte de los usuarios del sitio y se les ocurrió que ofrecer «galardones» a… Seguir leyendo Cómo mostrar resultados de un proceso largo en tiempo real en una aplicación web

Cómo mostrar progreso de procesamiento en un entorno Web

Cuando se requiere tratar con un proceso largo se presenta un problema. Existen varias alternativas (algunas las discutíamos acá). Idependientemente de cuál sea la estrategia elegida, el objetivo es siempre el mismo: evitar que el visitante se aburra (o piense que la aplicación se colgó o algo parecido).   Algo que hasta hace un tiempo era… Seguir leyendo Cómo mostrar progreso de procesamiento en un entorno Web

Algunas consideraciones de seguridad cuando se suben archivos vía PHP

Php permite subir archivos vía HTTP de un modo bastante simple (Si tenés dudas consultá acá). Un uso bastante común de esta funcionalidad es la de permitir al visitante ingresar imágenes, por ejemplo: su foto de perfil. Existe una serie de consideraciones respecto de la seguridad a tener en cuenta cuando se realiza una tarea de… Seguir leyendo Algunas consideraciones de seguridad cuando se suben archivos vía PHP

Cómo probar tus scripts PHP sin instalar un intérprete

No sé si te pasará lo mismo, pero para mi, la posibilidad de escribir (y probar) código sin necesidad de tener mi propia computadora a mano es muy seductora. He probado CodeAnyWhere y está bastante cerca de lo que me gustaría, pero todavía (2017) le falta un poco… imagino que para 2020 será la opción de… Seguir leyendo Cómo probar tus scripts PHP sin instalar un intérprete

Cómo debuggear un comando Symfony usando PhpStorm

En este post voy a mostrarte un caso algo particular de cómo debuggear un script que corre por línea de comandos. Se trata de debuggear un script hecho con el framework Symfony. La particularidad que tiene este escenario es que el código que escibiste (y que querés verificar), no es un archivo php común, si no… Seguir leyendo Cómo debuggear un comando Symfony usando PhpStorm