Criptografía en PHP

Muy buen artículo en el que se nos enseña cómo usar criptografía en PHP. Para ello empiezan con una pequeña introducción sobre qué es la criptografía y el por qué hay que usarla. Se centra en dos funciones dadas por PHP: md5 y root13, la primera se trata de una codificación hash en un solo sentido, mientras que la otra se trata de un algoritmo bidireccional de desplazamiento de los caracteres alfanuméricos en 13 posiciones.
A la vez nos explicarán el uso de la librería mcrypt y la instalación y uso como si se tratara de una extensión. En este caso, mcrypt se trata de un hash en ambos sentidos y segura (cosa que no es rot13).
Para poder comprender mejor el artículo, ponen dos ejemplos que nos hacen ver mejor el uso de estas técnicas: encriptar cookies y encriptar información sensible de la base de datos.
PHP Cryptography
Vía / Dzone

Nueva versión de Zend Plataform

zendplatform.gifZend, los creadores de PHP, han lanzado la versión 3 de su producto Zend Plataform, un servidor pensado para empresas ejecuten sus aplicaciones realizadas en PHP.
La nueva versión ofrece un clustering más robusto, una aplicación de monitorización que usa el protocolo SNMP para conectarse a otras aplicaciones. A parte incluye el software opensource Business Intelligence and Reporting Tools (BIRT) para la generación de informes.
Esto puede ser un paso para que las empresas usen PHP para la creación de sus aplicaciones, sustituyendo así a Java u otros lenguajes.
Zend bulks up PHP app server for business

PHP 5.2.1 disponible

PHPHa salido a la luz la versión 5.2.1 de PHP, en la cual se solucionan bugs de seguridad, siendo recomendable que se actualice a esta versión.
Los cambios realizados se pueden ver en la release note y cabe destacar protección heap interna, mejoras en Zend Memory Manager y la extensión ZIP.
PHP 5.2.1 Released!

Tutoriales de Web Services en PHP

Un web service (servicio web) es una serie de protocolos que sirven para intercambiar datos entre aplicaciones aplicaciones. Esto de forma resumida.

Si estás interesado en crearte un web service en PHP (por ejemplo un API para tu web), os paso una serie de manuales muy buenos para realizarlos en PHP:

10 errores que suelen cometer los programadores de PHP

Algo que nos pasa a los que aprendemos PHP por nuestra cuenta es coger fallos por malas costumbres, otras veces la gente tiene fallos por falta de conocimiento. Aquí os paso resumida una lista de los errores más comunes que se comenten a la hora de programar en PHP.

  • No escapar lo que nos llegar por parámetro: para evitar el cross-site scripting es necesario escapar las posibles entradas HTML que nos lleguen por parámetro. Si al introducir el usuario nos metieran:
    <script>...$lt/script$gt;

    sería necesario escapar las entidades HTML para evitar ataques. Para ello se usaría el siguiente código:

    htmlspecialchars($_GET['username'], ENT_QUOTES)
  • No escapar las entradas de consultas SQL: para evitar SQL-injections es necesario escapar antes el contenido de las entradas que pasamos a nuestras consultas SQL. Por ejemplo, tendríamos que crearnos una función que escapara las comillas simples.
  • Uso incorrecto de las funciones para la cabecera HTTP (header(), session_start() y setcookie()): muchas veces cuando desarrollanos nos encontramos con un mensaje de error que dice que ya se ha mandado la cabecera y que no se puede añadir más información. Esto es debido a que las funciones de cabecera (header(), session_start(), setcookie()) se tienen que usar al principio del script, antes de mandar nada a la salida.
  • No controlar lo que añades mediante require o include: se trata de no comenter el error de incluir un fichero cuya ruta se pasa por parámetro, ya que aunque nosotros seamos quienes pongan ese valor en el parámetro, puede llegar alguien y cambiar la ruta y pasar otro fichero que no sea de fiar.
  • Errores de sintaxis: bueno, aquí el autor del artículo, se ha quedado un tanto agusto. Todo el mundo comete errores de sintaxis cuando programa, ya sea en PHP, C, .NET o cualquier otro lenguaje de programación. Yo si que comentaria un error que suelo cometer, que es el escribir mal una variable y que el script no falle (como ocurriría en Java), pero que se obtengan datos incorrectos.
  • No usar la orientación a objetos: desde la versión 4 los objetos se admiten en PHP, en PHP5 se mejoró su utilización. Debemos aprovecharnos de esas posibilidades.
  • No usar frameworks: no reinventemos la rueda, si ya hay un framework que nos gestiona la base de datos, los errores y otras cosas, no pierdas el tiempo en implementarlo tu mismo.
  • Desconocer funcionalidades: PHP dispone de muchas funcionalidades en su core o en su librerías, cuantas más funcionalidades conozcas, menos tiempo perderas en el desarrollo.
  • Usar versiones antiguas de PHP: tiene dos inconvenientes, que desaprovechas nuevas funcionalidades y corres el peligro de no tener todos los bugs parcheados.
  • Doble escapado de comillas: es posible encontrar en código PHP algo así: \’ o \”. Esto suele ocurrir cuando se desarrolla con magic_quotes off y se instala en un servidor con magic_quotes on.

The PHP coder’s top 10 mistakes and problems

Vía / dzone

ffmpeg-php: obten información de tus videos y sonidos mediante PHP

ffmpeg-php es una librería para acceder y recuperar información de ficheros de video y audio.
Con esta librería se pueden obtener frames de los ficheros de video como imágenes para luego manipularlas con las funciones GD de PHP. Muy útil para crear thumbnails de los videos que poseemos. De los ficheros audio se puede obtener la duración y el bitrate. Son varios los formatos de audio (mp3, wma, …) y de video (mov, avi, mpg, wmv, …) los que admite esta librería.
Entre las características que nos ofrece, nos encontramos con lo siguiente: orientado a objetos, obtener imágenes de los frames de un video, crear GIFs animados de los frames de un video o de imágenes GD, utiliza las características de ffmpeg para redimensionar y recortar los frames obtenidos, obtener de los ficheros mp3 la información meta de los archivos.
Para utilizar esta librería es necesario ffmpeg-0.4.9_pre1, php-4.3.0 y gd-2.0.
ffmpeg-php

| | | |

Cómo destacar en el menú de navegación el acceso en que nos encontramos

Imaginemos que tenemos un menú de navegación y queremos diferenciar la opción de Home, el About, el Contacto… ya que en esos momentos estamos en uno de ellos.

¿Cómo hacerlo? En Babblative nos enlazan algunos métodos para hacerlo:

Method 1 – WordPress: WordPress actually has this feature built-in. WP-List-Pages

Method 2 – PHP: Jem’s Trendy Active CSS Tabs or Matt’s Intelligent Menu’s. I’ve personally had middling success with PHP on a manually maintained site and little success with it on Textpattern.

Method 3 – Textpattern: You can either muck around with multiple templates, which is bloated and unnecessary, or you can use this method. If you choose to use the multiple templates then you’ll need to read how do I use a different page layout for each section?

Method 4 – Manually Maintained Sites: Use Hicksdesigns method to highlighting current page with CSS

Keep Reading: Keeping a ‘current state’ on navigation, Keeping Navigation Current With PHP, EasyNav, Setting the Current Menu State with CSS

Vía / Babblative

|

SimplePie: parser de RSS y Atom para PHP

simplepie.pngSi el otro día hablabamos de MagpieRSS, hoy tenemos que hablar de SimplePie, una librería en PHP que nos recomienda artux y que nos permite leer los feeds RSS y Atom.
Es fácil de usar incluso para principiantes en PHP, rápido debido a que cachea los contenidos, admite RSS 0.91, RSS 1.0 y RSS 2.0 y Atom 0.3 y 1.0 y muchas cosas más.
SimplePie

Ogoproject: proyecto para ‘limpiar’ PHP

ogoproject.pngLa verdad es que lo malo que tiene PHP es que tiene bastantes inconsistencias en la nomenclatura y en el orden de los parámetros. Supongo que ha habido gente que cansados de este fallo en PHP han creado el proyecto Ogo, el cual pretende limpiar el código PHP de estas inconsistencias en los nombres de las funciones, a parte de la dificultad de recordarlos.
Lo que pretenden entre otras cosas es que los nombres de las funciones sigan la notación camel case, esto es, las palabras en minúsculas sin separaciones (guiones bajos) y cuando empiece una palabra nueva, la primera letra de la nueva palabra deberá ir en mayúsculas. Así por ejemplo, si tenemos la función html_entity_decode se transformará en htmlEntityDecode, isset en isSet y is_array en isArray.
Por ahora ofrecen pretenden ofrecer un fork de PHP hasta que se resuelva el problema de compatibilidades.
ogoproject
Vía / dzone

|

TinyDigg: API simple de Digg para PHP

Aunque el mismo autor reconoce que el código no está muy optimizado, el hecho es que esta librería de PHP para acceder a funciones de Digg, puede ser de suficiente utilidad por si queremos incluir las noticias de Digg actualizadas en nuestra web.
Muestra el número de diggs que tiene una historia, la categoría de la historia, cabecera, enlace a entrada original y el resumen.
TinyDigg
Ejemplo
Vía / Good PHP Tutorials