Cómo pasar datos de tipo DateTime a través de $_GET

Cómo pasar datos de tipo DateTime a través de $_GET

Cómo hacer para...
Tenés una fecha guardada en un objeto DateTime y necesitás enviarla a otra página... incluso puede que sea una página de otro sitio (un servicio web por ejemplo). Suponiendo que la URL del destino es algo como http://otrositio.com?fecha=dd-mm-YYYY, sólo se trata de tomar el string http://otrositio.com?fecha= y concatenar el objeto. No parece muy complicado, ¿no? No es que sea una ciencia oculta tampoco, pero no es tan simple. ¿Cuál es el problema? La clase DateTime no cuenta con un método __toString, con lo cual, si intentás algo como: <?php $d = new DateTime(); $url = 'http://otrositio.com?fecha='.$d; Te vas a encontrar con un error: PHP Warning: Uncaught Error: Object of class DateTime could not be converted to string El punto es que no existe una única forma de expresar una fecha…
Leer más
Cómo insertar en MySQL desde PHP

Cómo insertar en MySQL desde PHP

Cómo hacer para...
Estás intentando guardar los datos de tu formulario en una base de datos, todo funciona bien salvo que... cuando vas a mirar tu tabla... nada por aquí, nada por allá. ¿Qué pasó? Ya buscaste en Google, ya probaste de todo y nada funciona. Estás desesperado y sentís que sólo estás tirando tiros a ciegas Calma Todo tiene solución :) A lo largo de este artículo conocerás los motivos más comunes de estos problemas pero primero debemos poner algunos puntos en común. Existen varios métodos para realizar una consulta a MySQL utilizando PHP pero a nivel conceptual todos hacen lo mismo: Establecer una conexión entre tu aplicación y el servidor MySQLGenerar el código SQL que corresponde con la operación que buscás realizarEnviar el comando a través de la conexiónEvaluar el resultado…
Leer más
PHP me da error… ¿y ahora?

PHP me da error… ¿y ahora?

Cómo hacer para...
Cuando estás comenzando con php es muy común encontrarte ante alguna situación similar a esta: "por algun motivo no puedo insertar datos ni actualizar ni borrar.Me da un error en las lineas 51 y 52" "estoy queriendo insertar un string en una base de datos pero me da error, no me reconoce el formato de la hora" "estoy haciendo un select php con un where, pero no me muestra los resultados, me da error." Seguramente te estarás preguntando qué puede estar pasando (y más importante: ¿¿cómo resolverlo??) Hay pocas cosas más desesperantes que probar y probar y que nada funcione... Te tengo buenas noticias: la solución está más cerca de lo que parece :) Lo primero que hay que hacer en una situación como esta es respirar hondo, tal vez…
Leer más
¿cURL o file_get_contents? 6 tips para decidir

¿cURL o file_get_contents? 6 tips para decidir

Cómo hacer para...
Estás haciedo un script para obtener contenido desde una url y te encuentras que se puede hacer con curl y con file_get_contents... ¿cuál es la más apropiada para este caso? Antes de decidir, hazte estas preguntas ¿Qué diferencias hay entre cURL y file_get_contents? file_get_contents es una función de bastante alto nivel. Puede usarse tanto para leer archivos locales como remotos. cURL es una librería que permite la comunicación con diferentes tipos de servidores y protocolos. Esto significa que, si bien con cURL es posible lograr el objetivo, esta herramienta tiene muchas más aplicaciones que la primera. ¿Cuál es la más segura? Un punto muy importante es el de la seguridad, dado que se trata de intercambiar información con servidores remotos y, ahí donde dejamos una puerta abierta... el diablo puede colarse :)…
Leer más
Cómo ocultar una página de alguien que conoce la URL

Cómo ocultar una página de alguien que conoce la URL

Cómo hacer para...
El problema del que voy a hablarte en este post es el siguiente: Estoy haciendo un sistema para validar las personas que ingresan a un modulo especifico.El sistema solicita una clave de acceso que yo les genero, por ejemplo la página del formulario es el index.html y cuando completan e introducen la clave correcta los lleva a view.html, el problema está en que si una persona pone en la url directamente view.html, pueden ingresar sin pasar por el formulario.Como puede hacer para si alguien conoce la URL view.html, al ingresarla en el navegador lo redirija al index.html La solución a este problema puede pensarse como la solución a dos sub-problemas: Cómo saber si un visitante pasó antes por una página de tu sitio Una forma de saber si un usuario…
Leer más
Cómo mejorar la calidad de tus aplicaciones PHP

Cómo mejorar la calidad de tus aplicaciones PHP

Cómo hacer para...
A nadie le gusta encontrar bugs en sus aplicaciones. Mucho menos que sea el cliente quien los encuentre. ¿Qué podemos hacer para evitar estas desagradables situaciones? Testear. Qué significa testear una aplicación Testear una aplicación puede significar varias cosas pero básicamente, se trata de probar el funcionamiento tratando de confirmar que todo ocurre según lo planeado. La parte desagradable del testing es que sólo puede darnos seguridad de que la aplicación falla. En otras palabras el hecho de que todas las pruebas resulten exitosas puede significar dos cosas: Que efectivamente la aplicación esté libre de erroresQue no hayamos realizado suficientes pruebas Desafortunadamente no es posible determinar si estamos en la situación uno o la dos. ¡Claro que esto no significa que testear no valga la pena! El punto es que…
Leer más

Cómo extraer las imágenes de un PDF usando PHP

Cómo hacer para...
Trabajar con pdfs no es lo más cómodo del mundo.. especialmente cuando se trata de extraer información de ellos. Cuando se requiere realizar una misma tarea muchas veces es sumamente útil crear scripts para automatizar estas tareas. En este ejemplo te mostraré cómo extraer una imagen guardada en un documento como este: Por supuesto que no partiremos desde 0 habiendo tantas librerías disponibles. Qué librería PHP permite leer archivos PDF Existen diversas librerías para leer archivos PDF en PHP. Para este caso, una buena es https://github.com/smalot/pdfparser. Utilizarla es bastante simple. Comenzamos por instalarla usando Composer: composer require smalot/pdfparser Con esto tendremos acceso a objetos de tipo Smalot\PdfParser\Parser con los que podremos interpretar el contenido del archivo sin problemas. Lo próximo entonces es abrir el archivo utilizando las capacidades de la…
Leer más
Cómo testear una aplicación PHP que no usa objetos

Cómo testear una aplicación PHP que no usa objetos

Cómo hacer para...
PHPUnit, al igual que la mayoría de los frameworks de testing, se basa fuertemente en el supuesto de que la aplicación a verificar está desarrollada bajo el paradigma de Orientación a Objetos. Sin embargo, es muy común en nuestros días encontrarnos con aplicaciones tipo spaghetti... ¿es posible hacer testing automatizado sobre ellas? La respuesta es sí. Claro que las respuestas a qué testear y cómo testear son un poco diferentes. Qué puede testearse en una aplicación que no usa objetos Obviamente, no será posible verificar una clase porque... la aplicación no tiene clases. De modo que podemos testear: La página que se presentará al usuario (Lo que podríamos asemejar a un test funcional)El resultado de ejecutar alguna función en particularEl resultado de correr algún script Cómo testear el resultado de…
Leer más
Cómo testear los emails que envía tu aplicación

Cómo testear los emails que envía tu aplicación

Cómo hacer para..., Herramientas
¿Alguna vez te llegó un correo similar a este? Es un hecho: los mails que genera y envía tu aplicación son una parte de ella y, como tal, deben ser testeados. En este artículo te mostraré algunas técnicas que te ayudarán a encarar estas pruebas Testear emails enviando a un único destinatario Una técnica simple es hacer que todos los correos lleguen siempre a un mismo destinatario (a vos). La ventaja de esto es que prácticamente no necesitás nada extra (Nada que no tengas digamos). El problema es que implementar esto puede implicar ensuciar el código con condicionales aquí y allí. Si usas un componente para el envío (Como el Mailer de Symfony), las cosas pueden ser más simples. Basta con especificar el destinatario único en el archivo de configuración…
Leer más
Cómo saber el controlador que maneja una ruta en Symfony

Cómo saber el controlador que maneja una ruta en Symfony

Cómo hacer para...
El framework Symfony es de lo mejorcito que tenemos en el mundillo de PHP (Personalmente es mi favorito por lejos). Para procesar un request se requiere un método de alguna clase (Un controlador). Para decidir cuál es el controlador al que se debe invocar al momento de responder al pedido de un usuario se utiliza un componente llamado Router. Este componente conoce el mapeo entre una URI y dicho controlador. Existen diversos modos de definir este mapeo (por ejemplo mediante annotations). Esto hace que, si una aplicación es grande, puede ser algo complejo encontrar cuál es exactamente el controlador que se esconde detrás de una URL. En este artículo te mostraré un pequeño truco para obtener esa información. Voy a asumir que estás en algún tipo de consola POSIX (Linux,…
Leer más