PHP - Comprobar si el usuario visita la página web por primera vez

PHP – Comprobar si es primera visita

En este post de programación con PHP te enseñaré cómo comprobar si es la primera vez que un usuario entra a nuestra web. Es decir, saber si el usuario visita la página por primera vez o si ya la ha visitado antes.

PHP - Comprobar si el usuario visita la página web por primera vez

PHP – Comprobar si el usuario visita la página web por primera vez

Para esto vamos a usar cookies y la función setcookie de PHP.

(más…)

Ver carrito de compras con productos almacenados en localStorage usando JavaScript

Carrito de compras con JavaScript

En este post de JavaScript y desarrollo web te mostraré cómo implementar un carrito de compras en el lado del cliente con JS.

Será un ejemplo completo de un proyecto en donde además de tener el carrito de compras tendremos un módulo de tienda (pero no habrá transacciones ni pagos reales) y módulo de gestión de productos.

Este proyecto se basa ampliamente en el CRUD con AJAX, PHP y MySQL publicado anteriormente, pero agregamos la gestión del carrito de compras dentro de localStorage.

Como siempre, te dejaré el código completo y listo para descargar.

(más…)

Clase para carrito de compras con JavaScript y LocalStorage

En este post te mostraré una librería de JavaScript para guardar un carrito de compras en JavaScript del lado del cliente. Será una simple clase que encerrará el comportamiento y brindará funciones para todas las operaciones.

Como dice el título, se usará localStorage para guardar y recuperar los valores, de este modo no importa el lenguaje del lado del servidor, pues se usará el lado del cliente.

Por ahora te mostraré solo la librería/Clase, no su uso. Ya más adelante te traeré un ejemplo completo.

(más…)

PHP – Subir varios archivos

Recientemente necesitaba transferir unos archivos de manera inalámbrica desde un teléfono a mi computadora.

Lo más común en pleno 2021 sería enviarlos por Telegram, Google Drive, etcétera y luego descargarlo en la computadora, pero con la pésima calidad de internet que da mi proveedor de internet (cof cof Telmex) eso tardaría demasiado tiempo.

Así que escribí un pequeño script de PHP que sirve para subir varios archivos desde un formulario al servidor de PHP. Realmente es algo muy sencillo, solo es trabajo con el arreglo de $_FILES y move_uploaded_file, algo similar a lo visto en mi otro post.

(más…)

Árbol binario en Python - Estructura de datos

Árbol binario en Python

En este post vamos a implementar la estructura de datos Árbol binario en Python, además de implementar la declaración de un Nodo o rama.

También veremos cómo agregar al nodo sus partes izquierda y derecha, el método para agregar un valor de manera recursiva (y acomodarlo de acuerdo a la raíz) al árbol, recorrido inorden, postorden y preorden, así como la búsqueda de determinado valor en el árbol.

Básicamente implementaremos un árbol en Python con los métodos más comunes. Recuerda que los árboles binarios son una estructura de datos bastante interesante en donde la búsqueda de un elemento se hace de manera rápida por la naturaleza del mismo.

(más…)

Python - Obtener elemento menor y mayor de una lista

Python: mayor y menor de arreglo

En este post de programación en Python te enseñaré cómo obtener el elemento mayor de una lista, así como el elemento menor. Ten en cuenta que yo me referiré a lista, array y arreglo como sinónimos.

Al final tendremos dos funciones que van a recibir un arreglo y devolver, respectivamente, el menor y mayor elemento de la lista, sin importar el tipo de dato.

(más…)

Tienda de productos - Mostrar botón para agregar o quitar del carrito de compras

Carrito de compras con PHP y MySQL

Hoy vamos a ver cómo implementar un carrito de compras con PHP y MySQL. Vamos a poner una especie de tienda o e-commerce con PHP en donde el usuario puede agregar productos al carrito, ver su carrito de compras con el total, y quitar productos del mismo.

Para ello vamos a usar la sesión y MySQL. Con la sesión vamos a identificar al usuario y la gestión del carrito se hará a través de esta base de datos. Ten en cuenta que aquí el punto es el carrito de compras, no una tienda online.

La única desventaja que tendremos es que si el usuario abandona el carrito de compras los datos no serán eliminados, pero esto se puede arreglar implementando todo el carrito como un array en la sesión tal como lo hice en mi sistema de ventas con PHP.

Te dejaré el código completo al final del post, como siempre, gratuito y open source.

(más…)

Árbol binario en C con nodo de tipo cadena

C – Árbol binario de cadenas

En este post te mostraré cómo implementar la estructura de datos de árbol binario en ANSI C en donde el dato de cada nodo o rama será una cadena.

Te enseñaré cómo agregar un struct de nodo de árbol cuyo dato es char*, elegir si el nodo va a la izquierda o derecha (comparando cadenas) , recorrer el árbol en preorden, inorden y postorden y también hacer una búsqueda en el mismo.

Me estoy basando en el tutorial de árboles binarios en C que presenté anteriormente, solo que en aquel entonces fue con un tipo de dato entero, ahora lo haré con strings.

Nota: nodo y rama serán usados como sinónimos a lo largo de este post.

(más…)

Concatenar char y string en C

Concatenar char y string en C

En este post sobre C te mostraré cómo concatenar un carácter y una cadena, es decir, agregar un tipo de dato char a un tipo de dato char* que no es otra cosa más que un arreglo de caracteres, ya que en C no existen las strings como tal.

Explicado con pocas palabras te enseñaré como agregar un char como 'a' a una cadena como "Hol".

Aunque en otros lenguajes esto no tiene ninguna complejidad, en ANSI C hay que escribir un poco más de código.

(más…)

PHP – Iniciar sesión si no está iniciada

En este corto artículo te mostraré cómo iniciar una sesión de PHP solo si la misma no está iniciada. De este modo podemos invocar a la función que te mostraré sin importar si la sesión ya ha sido iniciada anteriormente, evitando el aviso que dice:

Notice: session_start(): A session had already been started – ignoring in archivo..php on line N.

(más…)

Cálculo de factorial en Python

Factorial en Python

En este post te mostraré cómo obtener el factorial de un número usando Python. Vamos a ver dos métodos: de manera iterativa con un ciclo, y de manera recursiva en donde la función se llama a sí misma.

Recuerda que el factorial de un número es el resultado de multiplicar ese número por todos los números que existen desde él hasta el 1. Por ejemplo, el factorial de 5 es 120 pues 5 * 4 * 3 * 2 * 1 es 120.

Voy a encerrar el comportamiento de este programa en funciones para su fácil reutilización. De hecho el método con recursión no puede estar en otro lugar más que en una función.

(más…)

Fibonacci en Python - Método iterativo, recursivo e impresión de serie

Fibonacci en Python

Hoy te enseñaré cómo trabajar  con la secuencia Fibonacci en Python. Te enseñaré a obtener el número que va en determinada posición, así como imprimir toda la serie hasta determinado número.

Veremos las dos formas de trabajar con esta sucesión en Python: de manera iterativa con un ciclo for, y de manera recursiva invocando a la función dentro de sí misma.

(más…)

Map en CPP - Ejemplo de uso

Hashmaps en C++ con map

En este post te mostraré cómo trabajar con hashmaps, hashtables o diccionarios en C++ (CPP) usando map. Me parece que a éstas tablas también se les conoce como tablas de dispersión o simplemente mapas.

Así que usaré cualquiera de estos sinónimos para referirme a esa estructura de datos.

Recuerda que un diccionario tiene una clave y un valor. Lo bueno es que permite acceder a los elementos de manera muy rápida, pues no tiene que hacer ningún tipo de búsqueda ya que usando la clave podemos localizar cualquier elemento.

Veamos entonces algunos ejemplos de map en C++.

(más…)