Archivos en la categoría Programación

Error colour_swatch.html en phpBB 3.0 al actualizar un theme

phpbb3 Error colour swatch.html en phpBB 3.0 al actualizar un theme

Recientemente estuve haciendo algunas modificaciones en el theme de un foro corriendo en phpBB 3.0. Esta última versión cambió radicalmente el panel de administración y mantenimiento de los foros. La gestión de los themes también ha cambiado, disponiendo de dos partes: plantillas y temas. La primera hace referencia a la estructura y la segunda al diseño. Cuando hacemos algún cambio en los ficheros fuente debemos actualizar el caché de los foros para que los cambios tengan efecto, y es aquí donde me apareció un error:

Could not open ./../styles/prosilver/template/colour_swatch.html

Era incapaz de actualizar el caché y aplicar los cambios en el diseño del theme. Al final encontré la solución ejecutando una query en la base de datos que eliminaba un parámetro de configuración del template:

DELETE FROM `phpbb_styles_template_data` WHERE `template_filename`= ‘colour_swatch.html’;

Más info | http://ktuk.net/phpBB3/viewtopic.php?f=32&t=4503

2 Comentarios

Cómo subir archivos al servidor desde PHP

Recientemente he tenido que crear un pequeño script para subir ficheros al servidor desde una web desarrollada en PHP. Normalmente este tipo de herramientas se utilizan para subir imágenes, ficheros adjuntos o para subir un avatar en un foro. En mi caso lo he utilizado para un concurso en el que cada participante debe subir tres imágenes de su proyecto.

Para poder hacer un upload de archivos en PHP necesitamos crear un formulario con un parámetro especial enctype=”multipart/form-data”. Este parámetro permite indicar que vamos a enviar, además de texto, varios ficheros al puslar el submit del formulario. Los elementos necesarios para subir los ficheros son los input file, de los cuales crearemos tantos como deseemos (asignado a cada uno un name único).

El formulario de envío nos quedaría tal que así:

<form name="form" action="alta.php" method="POST" enctype="multipart/form-data" >
<input type="hidden" name="MAX_FILE_SIZE" value="1500000">
<input name="nombre" value="" size="30">
<input name="email" value="" size="30">
<input name="file1" type="file">
<input type="submit" value="Enviar">
</form>

El fichero que gestiona los datos del formulario alta.php recibirá en el contexto 3 elementos: el name, el email, y el archivo file1. Los dos primeros los recuperaremos de forma convencional a través de $_POST, mientras que el archivo lo recuperaremos a través de $_FILES, que es un array que almacena los datos del mismo: tamaño, formato, nombre, etc. El input MAX_FILE_SIZE nos permite indicar cuál es el tamaño máximo de los archivos que se pueden subir. El valor está en kbs. Sin embargo, esto se puede comprobar posteriormente en alta.php a través de la variable size del array $_FILES. Ahora lo veremos.

<?php

$nombre_archivo = $_FILES [ "file1" ] [ "name" ];
$tipo_archivo = $_FILES [ "file1" ] [ "type" ];
$tamano_archivo = $_FILES [ "file1" ] [ "size" ];
$nombre_temp = $_FILES [ "file1" ] [ "tmp_name" ];

if (((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg") || strpos($tipo_archivo, "png") && ($tamano_archivo < 1500000))) {

if (is_uploaded_file($nombre_temp)) {

copy($nombre_temp, ""directorio/".$_FILES [ "file1" ] );

}else{

echo "Se ha producido un error al intentar subir el archivo";

}else{

echo "El archivo seleccionado no es una imagen o excede el 1.5mb de peso";

} ?>

Al igual que recogemos del contexto cualquier elemento de un formulario, recogeremos el array con los datos del archivo con $_FILES. Una vez hemos recuperado sus características, comprobamos que cumple con los requisitos del formulario: que es una imagen (es gif, jpg ó png), esta comprobación, en vez de hacerla con los MIMEs (‘image/jpeg’), se hace de forma más sencilla buscando la extensión en el nombre del archivo subido. Además, también se comprueba que pesa menos de 1.5mb. Podemos añadir cuantas comprobaciones deseemos, basta con meterlas a continuación del primer if.

En caso de que el fichero subido cumpla con todos los requerimientos, procederemos a alojarlo en nuestro servidor. El proceso hace una copia temporal del archivo en el servidor para su posterior tratamiento. La función is_uploaded_file se encarga de indicarnos si se ha realizado correctamente o no. En caso afirmativo, se procede a hacer una copia en nuestro servidor gracias a la función copy. Esta función recibe dos parámetros: nombre y path temporales del archivo, y el path o ruta donde queremos guardarlo. Es necesario que el directorio del ftp donde queremos alojar nuestras imágenes tenga permisos de escritura. En nuestro caso vamos a copiar los archivos en un directorio creado a tal efecto.

descargar ejemplo web Cómo subir archivos al servidor desde PHP
6 Comentarios

Diferencias entre GET y POST

Vía anieto2k he encontrado una interesante guía donde nos explican cuáles son las diferencias entre GET y POST, los métodos  para pasar variables por URL y recuperarlas del contexto. El funcionamiento de las dos es el mismo, con la única diferencia de que con el GET veremos las variables en la URL, mientras que el POST sólo nos mostrará la URI y la página donde estamos.

// GET

www.mitienda.com/tienda.php?cat=2&item&24&lan=es

// POST

www.mitienda.com/tienda.php

El uso de un método u otro depende de la información que vayamos a pasar. En la guía nos indican qué método debemos utilizar para cada procedimiento. A modo de resumen:

  • Utiliza GET para acciones seguras y POST para las inseguras
  • Utiliza POST si envias datos privados (passwords, números de tarjetas de crédito, etc)
  • Utiliza POST cuando envíes mucha información (más de 2024 caracteres)
  • Utiliza GET en entornos AJAX


get post Diferencias entre GET y POST

Más info | http://carsonified.com/blog/dev


1 Comentario

Quizzpot, escuela online de desarrollo web

quizzpot curso javascript Quizzpot, escuela online de desarrollo web

Quizzpot es una escuela online donde podemos encontrar un pequeño catálogo de cursos y tutoriales gratuitos, en formato de video y texto, sobre programación y desarrollo web basados en el framework EXT JS (javascript). Los artículos están formados por un video, impartido por profesionales que dominan la herramienta, y un artículo donde nos lo aclaran con la ayuda de código fuente y ejemplos.

Nos enseñan desde lo más básico a scripts más avanzados. Lo más interesante de Quizzpot es la posibilidad de realizar exámenes para evaluar si hemos aprendido algo a través de sus artículos. Si bien todos los cursos y tutoriales han sido publicados por el equipo de Quizzpot, están abiertos a publicar cualquier artículo escrito por sus lectores.

Más info | http://www.quizzpot.com

1 Comentario

Las 20 respuestas más utilizadas por los programadores

Vía DreamCoders he encontrado un interesante listado con las 20 respuestas más utilizadas por programadores cuando sus aplicaciones no funcionan correctamente. Lo más curioso es que la gran mayoría de ellas las he usado yo alguna vez, sobre todo la número 1, ¿y tú? ¿las has usado alguna vez?

Las 20 respuestas más utilizadas por los programadores

20.- “Pues es raro…”
19.- “Nunca había pasado antes.”
18.- “Pues ayer funcionaba…”
17.- “¿Cómo es posible?”
16.- “Tiene que ser un problema de tu hardware.”
15.- “¿Qué hiciste mal para lograr que fallara?”
14.- “Algo debe de estar mal en tus datos.”
13.- “¡Si no he tocado ese módulo en meses!”
12.- “Debes de estar usando una versión anterior.”
11.- “Es sólo una desafortunada coincidencia.”
10.- “¡Es que no lo puedo probar todo!”
9.- “ESTO, no puede ser la causa de ESO.”
8.- “Funciona, pero no lo he probado.”
7.- “¡Alguien debe de haber cambiado mi código!”
6.- “¿Has comprobado que no haya algún virus en tu sistema?”
5.- “Ya se que no funciona, ¿pero te gusta?”
4.- “No puedes utilizar esa versión en tu sistema”
3.- “¿Por qué quieres hacer eso?”
2.- “¿Y tú dónde estabas cuando se colgó el programa?”

Y la respuesta número uno de los programadores con programas que no funcionan es:

1. “¡EN MI MÁQUINA SI FUNCIONA!”

Sin Comentarios

BeyondCompare & WinMerge: comparar archivos para ver sus diferencias

comparar archivos winmerge BeyondCompare  & WinMerge: comparar archivos para ver sus diferencias

En el proyecto de desarrollo en el que estoy trabajando actualmente somos dos programadores. En numerosas ocasiones tenemos que editar los mismos ficheros. Para que ambos tengamos una versión actualizada de los archivos utilizamos un CVS (Control Version System), que alojado en un servidor, nos permite subir los cambios que hemos efectuado para luego descargarlos y tener cada uno el proyecto actualizado en su máquina.

Hay numerosas herramientas CVS para facilitar la gestión de los ficheros que nos permiten, entre otras cosas, enviar, descargar o ver las diferencias de los archivos. Si bien los CVS son ideales para el trabajo en equipo, si a alguno se le olvida subir sus actualizaciones o descargar los últimos cambios antes de ponerse a editar, podremos tener un problema e incluso perder información.

Y digo esto porque hoy me ha pasado algo parecido. He actualizado el CVS y no había ningún cambio en el servidor, por lo que me he puesto a editar el core de nuestra aplicación. Cuando estaba probando los cambios en local me he dado cuenta de que algunas funcionalidades que estaban en producción no las podía usar en mi máquina. Me he descargado vía FTP los ficheros del servidor y por lo visto había unas cuantas líneas de código que no estaban en los ficheros del CVS. Se nos olvidó actualizarlo.

Para ver qué líneas de código no tenía en local he tenido que recurrir a Beyond Compare, una aplicación que nos permite comparar dos archivos y ver las diferencias entre ambos. Beyond Compare, que es de pago, es una completea aplicación para comparar directorios, ficheros de texto, bases de datos, ficheros hexadecimales, mp3 o imágenes.  La comparación de texto se muestra con dos ventanas. En cada una está uno de los ficheros a comparar señalando en rojo las líneas o caracteres que los diferencian.

Si lo prefieres, tienes a tu disposición WinMerge, aplicación OpenSource totalmente gratuita. La ventaja de que sea OS es que tiene detrás una comunidad de usuarios que están actualizandolo constantemente y creando plug-ins para mejorar las funcionalidades (por ejemplo, hay un plugin para comparar documentos de MS OFFice: Word, Excel o Power Point o PDF). Y tú ¿qué programa utilizas para comparar archivos?

WinMerge | www.winmerge.org (Opensource)
Visor Diff Meld | http://meld.sourceforge.net (OpenSource, Linux)
Beyond Compare | www.scootersoftware.com (de pago)

2 Comentarios