Publi

  • Cómo subir tipos de archivo que WordPress no nos deja subir «por seguridad»

    peak_r

    Por motivos de seguridad, WordPress, en su configuración por defecto no nos deja subir determinados tipos de archivo. Podemos subir imágenes, sin problema, pero si queremos ofrecer algún tipo de descarga adicional como archivos comprimidos, no nos va a dejar, presentándonos el siguiente mensaje:
    Screenshot 31-01-2016-210132

    Digo motivos de seguridad, y en el título lo pongo entre comillas, porque es la excusa que pone WordPress. Puede que sea porque no son tipos de archivo comunes, y porque perfectamente pueden alojar archivos maliciosos (por ejemplo si ofreces una descarga puedes incluir un binario malicioso sin problema), pero en ocasiones sí que nos puede interesar ofrecerlo.… Leer artículo completo

  • Bucles y cursores en MySQL con ejemplos

    Hace mucho tiempo que quería escribir sobre esto. Y aunque es recomendable no abusar de los bucles en MySQL, es más, a veces no son necesarios, y siempre hay que buscar una solución que no los use, a veces no la vamos a encontrar y será en esos casos cuando debamos utilizarlos.

    Veamos un bucle muy sencillo, parecido a un for de los de toda la vida, en el que contamos del 1 al 9:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DELIMITER $$
    CREATE PROCEDURE simple_loop ( )
    BEGIN
      DECLARE counter BIGINT DEFAULT 0;
     
      my_loop: LOOP
        SET counter=counter+1;

        IF counter=10 THEN
          LEAVE my_loop;
        END IF;

        SELECT counter;

      END LOOP my_loop;
    END$$
    DELIMITER ;

    cuando hagamos:

    1
    CALL simple_loop();

    Veremos algo como esto:

    +———+
    | counter |
    +———+
    | 1 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 2 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 3 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 4 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 5 |
    +———+
    1 row in set (0.01 sec)+———+
    | counter |
    +———+
    | 6 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 7 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 8 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 9 |
    +———+
    1 row in set (0.01 sec)

    Query OK, 0 rows affected (0.01 sec)

    Vemos que el código que iteraremos está entre LOOP…END LOOP, lo que aparece justo antes (my_loop) es una etiqueta para nombrar ese bucle.… Leer artículo completo

  • Accediendo a bases de datos MySQL desde C++

    photo-1423592707957-3b212afa6733_r

    Muchos estamos acostumbrados a utilizar bases de datos en PHP pero cuando se trata de un programa de escritorio almacenamos los cambios en archivos sin contemplar esta posibilidad.

    Usar una base de datos puede ser un gran aliado a la hora de hacer aplicaciones que almacenen gran cantidad de información o vayamos a acceder desde varios puntos a dicha información (programas multipuesto, por ejemplo).

    También es de gran utilidad si construimos un software que haga más ligeras ciertas tareas dentro de un servidor web (necesitamos la posibilidad de ejecutar programas sobre el servidor y tal vez de compilarlos allí, pero es una opción bastante buena, en ocasiones un script puede ejecutarse de forma demasiado lenta.… Leer artículo completo

  • Nos ponemos serios con PHP: Empezamos con un CRUD (la esencia no es exclusiva de PHP)

    crudHace años tuve entre manos un gran proyecto web, en el que invertí 8 meses de mi vida y funcionó bastante bien durante un tiempo. En su desarrollo recuerdo que tuve que desarrollar cerca 50 formularios diferentes, comprobar los valores de cada uno de los campos, hacer lecturas y escrituras en base de datos con los datos obtenidos, y opcionalmente realizar alguna tarea extra una vez enviado y validado el formulario.… Leer artículo completo