All posts by Alex

php_sesiones_seguras_tutorial

Si hacemos una simple consulta en Google, “variables de sesión seguras” o “sesiones seguras en php”, veremos que en la mayoría de foros aseguran que son totalmente seguras. ¿Pero realmente lo son? En realidad no y existen tres tipos de ataques para comprometer la seguridad de las variables de sesión:

  • Prediction
  • Capture
  • Fixation

Read more…

opendni_tutorial

A partir de la versión 0.12.0 del paquete OpenSC ya no se permitía hacer callbacks del módulo al API lo cual no permitía compilar el módulo opensc-dni per se con la actual versión de opensc. Una solución pasaba por “meter” el código fuente del módulo dentro del código fuente de opensc. A parte de fallar por todos los lados había otro problema: es ilegal, la DGP publicó el código del módulo con la licencia GPL que no se puede mezclar con la licencia LGPL de OpenSC.

Para solventar estos problemas nació la iniciativa OpenDNI, proyecto de liberación de fuentes desarrollados ad-hoc para el DNIe sobre esquema PKCS#11.

A continuación os explico como instalar el módulo OpenDNI sobre GNU/Linux y Firefox.
Read more…

gzip_tutorial

Una buena forma de ahorrar ancho de banda en nuestras webs es comprimiendo los archivos que la forman. En esta entrada nos centraremos en la compresión en gzip a través de PHP. Esto es útil cuando necesitamos comprimir los archivos de nuestro sitio web pero no podemos cambiar las directivas del servidor.

Todo lo que hay que hacer es encerrar el código entre dos instrucciones PHP:

<?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');} ?>

  ...
  Todo lo que haya aquí será comprimido.
  ...

<?php if(extension_loaded('zlib')){ob_end_flush();}?>

En la primera línea del ARCHIVO estamos diciendo que si Read more…

css_trans_tutorial

Con CSS podemos crear elementos web con cierto grado de transparencia. Un valor de opacidad 1 significa que el elemento es 100% transparente, y un valor de 0 significa que no tiene nada de transparencia.

Tenemos dos tipos de declaraciones: Read more…

wordpress_tutorial

Si visitáis la página principal de esta web: http://www.netflie.es veréis que abajo del todo aparecen algunas entradas del blog.

¿Cómo podemos hacer esto?

Primero deberemos insertar el código wordpress donde está definida la función que utilizaremos más adelante. Además también indicamos que estamos insertando este código en una página que no pertenece al árbol de ficheros y directorios de nuestra instalación WordPress:

/* WordPress includes */
define('WP_USE_THEMES', false);
require('blog/wp-blog-header.php');

Ahora veamos la estructura básica para leer las entradas, se trata de un simple bucle que va leyendo entrada por entrada:

while (have_posts()) : the_post(); ?>
     [..]                 
<?php endwhile;?>

Dentro de este bucle podemos llamar a algunas funciones interesantes que nos devolverán datos sobre la entrada:
the_permalink(); -> Nos devuelve el enlace a la entrada
the_post_thumbnail(array(width,height)); -> Nos devuelve un thumbnail de la entrada, width y height son las dimensiones para este thumbnail.
the_title(); -> El título de la entrada
the_date(); -> La fecha
the_excerpt() -> Un resumen de la entrada

MÁS FUNCIONES O TEMPLATE TAGS

url_amigable_tutorial

A continuación os presento un sencillo código que nos permitirá crear URLs amigables para nuestros archivos php:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Guardaremos el código en un archivo que debemos llamar .htaccess y que estará en el mismo directorio raíz que nuestros archivos PHP

Si antes para acceder a nuestra página de contactar debíamos escribir http://misitio.com/contactar.php ahora podremos acceder desde la siguiente dirección http://misitio.com/contactar

multiidioma_php_tutorial

Muchas veces tenemos la necesidad o curiosidad de hacer que nuestros sitios webs o scripts sean traducibles a varios idiomas. La solución más fácil y típica que podemos encontrar es la de crear un archivo para cada idioma, es decir, si queremos traducir las páginas index.php, buscador.php y foro.php de nuestro sitio web a 5 idiomas deberíamos crear ¡3×5 archivos diferentes! Y eso que sólo queremos traducir tres páginas de nuestro sitio. Ahora imagínate que tenemos más de una docena de scripts php para traducir, sería una pérdida de tiempo y recursos crear una traducción para cada script. Además nuestro código sería dificil de mantener.

Existen algunas soluciones complejas como Zend_Translate, pero este módulo depende de otros del propio paquete de Zend y puede que no nos interese cargar nuestro sitio web con un Framework para sólo traducir nuestra web.
Read more…

Nueva versión 150x94

Se han corregido algunos errores. Los archivos afectados son index.php, css/main.css e infometeo.xsl

Versión preliminar 0.8.1

  • [Bug] La zona de Google Maps del archivo index.php no centraba la posición de nuestra estación en el mapa.
  • [Bug] Encontrado un bug en el archivo css/main.css que no permitía ver las transparencias en el navegador Internet Explorer
  • [Bug] Corregido un fallo sintáctico en el código Javascript de infometeo.xsl que provocaba un error de sintaxis.

PHP 5 incluye la extensión XSL por defecto, pero en muchos entornos viene desactivada. Ponerla en funcionamiento suele ser sencillo y sólo es necesario modificar algún archivo.

ISS7 – Abrimos nuestro archivo php.ini(normalmente C:\Program Files\IIS Express\PHP\v5.X) y añadimos al final de él la línea extension=php_xsl.dll

XAMPP – Lo mismo que con ISS. El archivo php.ini suele estar en C:\xampp\php y además la línea ya aparece en el mismo archivo, aunque comentada. Para descomentarla tenemos que eliminar el punto y coma ( ; ) que aparece al principio de ;extension=php_xsl.dll. Si en nuestro fichero no la encontraramos, hacemos igual que con ISS7: la agregamos.

AppServ – INICIO / TODOS LOS PROGRAMAS / APPSERV / CONFIGURATION SERVE / PHP Edit the php.ini Configuration File. Hacemos lo mismo que XAMPP y ISS.

Otro sitio común donde puede estar el archivo php.ini es en C:/Windows, sobretodo si hemos instalado los módulos del servidor web por separado.

En GNU/Linux si no utilizamos XAMPP(LAMPP) u otro sistema similar, bastaría con instalar el paquete php5-xsl.

Más info en la web de PHP: http://www.php.net/manual/en/xsl.setup.php
Configurando y comprobando servidores PHP para XSL: https://wiki.mahara.org/index.php/Plugins/Artefact/Europass/Configuring_and_Testing_PHP_Servers_for_XSL_Support