Artículos

Detalles del protocolo HTTP que todo desarrollador PHP debe conocer

Detalles del protocolo HTTP que todo desarrollador PHP debe conocer

Conceptos
Algo que siempre me llamó la atención es cómo en los cursos de PHP (o de programación web en general para el caso), suele pasarse por alto hablar de HTTP. Es cierto que esto puede sonar demasiado teórico y, lo admito, aburrido, sin embargo, es un conocimiento que va a aclararte muchas cosas. Un claro ejemplo de esto es cuando te encontrás con un error como este: PHP Warning: session_start(): Cannot start session when headers already sent Cuando tu código dice algo como: Hola! <?php session_start(); O también: PHP Warning: Cannot modify header information - headers already sent Al entrar a una página con un código como: Hola! <?php setcookie('MyCookie','MyValue'); O Hola! <?php header('Location: pagina2.php'); Seguramente sabrás (tal vez por experiencia o porque "así es como se hace") que las…
Leer más
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
Cuál es la mejor forma de almacenar fechas en MySQL

Cuál es la mejor forma de almacenar fechas en MySQL

Buenas prácticas
¿Tenés que desarrollar una aplicación que maneja fechas? Tal vez un portal para reserva de turnos, o quizás algún sistema de membresías por tiempo limitado o por qué no un programa que le pregunte al visitante su fecha de nacimiento y le diga el signo del horóscopo chino al que pertenece. Más allá de cuál sea el objetivo de la aplicación en algún lado vas a necesitar almacenar fechas. Y ese lado será probablemente una base de datos relacional y, más aún, si estás usando PHP, seguramente sea MySQL. Existen varias opciones que podrías usar para definir el tipo de datos del campo en cuestión y la decisión puede no ser trivial. Usar un VARCHAR para almacenar un dato fecha Si bien técnicamente podrías guardar una fecha en un campo…
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
5 formas de reforzar la seguridad de tus sesiones en PHP

5 formas de reforzar la seguridad de tus sesiones en PHP

Seguridad
En un post anterior había mencionado cuáles son los riesgos a los que están sujetas las sesiones PHP. En este artículo voy a darte algunos tips para mejorar la seguridad de tus sesiones y dormir más tranquilo :) 1. Usa siempre HTTPS La mejor forma de reforzar la seguridad de tus aplicaciones (No sólo de las sesiones) es utilizar tráfico cifrado, de esta forma, aún si alguien logra capturar el tráfico le será virtualmente imposible leer el contenido. Puedes conseguir certificados gratuitos usando, por ejemplo, LetsEncrypt 2. Cambia el nombre de tu cookie de sesión El nombre por defecto de la cookie de sesión es PHPSESSID pero puedes cambiarlo usando session_name() o desde la configuración de php (La variable session.name). Al cambiar este dato harás más dificultoso para un atacante…
Leer más
¿Qué tan seguras son las sesiones de PHP?

¿Qué tan seguras son las sesiones de PHP?

Seguridad
Seguramente escuchaste alguna versión de estas preguntas: ¿Es posible que alguien modifique sus cookies, les otorgue diferentes privilegios o inicie sesión como un usuario diferente? ¿Puede alguien robar las variables mientras están guardadas en el lado del servidor? ¿Que tan posible es que alguien te copie una session para usarla en su navegador? Una de nuestras principales preocupaciones como desarrolladores de software es la posibilidad de que algún hacker pueda robar información que los usuarios han confiado a nuestras aplicaciones. Si eso llegara a suceder nuestros clientes podrían verse en serias dificultades (y por lo tanto, nosotros también). Existen muchos modos en que un atacante puede colarse en nuestros sistemas y, lamentablemente, las sesiones no están exentas de riesgos. Para qué sirven las sesiones en PHP Las sesiones de PHP…
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 validar que el usuario tiene permisos para ver la pagina web

Cómo validar que el usuario tiene permisos para ver la pagina web

Cómo hacer para...
Me encuentro a menudo con problemas como estos: 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 Diseñando mi sitio web con PHP, he notado algo que no es correcto. En la primera pagina, el usuario ingresas sus datos (usuario y contraseña). Luego de que es validado en la base de datos identificando que existe,…
Leer más
¿Por qué tantos programadores odian PHP?

¿Por qué tantos programadores odian PHP?

Reflexiones
PHP es un MAL lenguaje, es el VB de esta decada PHP hace que aumente la probabilidad de que te lleguen proyectos que sabes que no tendrán futuro. Un día entero desperdiciado gracias a php maldito seas. Muerte al php y apache admin ¿Te suena algo de esto? Apuesto a que sí. Y sin embargo, también se escuchan cosas como: Yo pensé que PHP era un mal lenguaje también. Pero me di cuenta que el idioma mejoró muchísimo después de la versión 7. 2020 y sigue habiendo un montón de trabajo backend para PHP. yo no considero php mal lenguaje, solo existe desarrolladores con malas pràcticas Entonces... ¿en qué quedamos? PHP ¿es o no un mal lenguaje? Claramente la comunidad de desarrolladores está dividida en este punto. Y sí, PHP…
Leer más