Captcha con PHP fácil de implementar

En Nodstrum encuentro una utilidad en PHP para crear Captcha facilmente (uno de los pocos en toda la red que funciona. Garantizado!). Les explicaré como hacerlo.

Easy Captcha

Paso 1: obligatorio! verifica que tengas habilitado la librería GD de PHP.

Paso 2: Nos descargamos la clase captcha.class.php del blog del autor, y vamos a configurar este archivo. Busca la variables $imageDirectory e $imageURL. La primera variable contiene el nombre de la carpeta donde se almacenarán las imágenes generadas dinámicamente. Esta carpeta debe tener permiso de escritura. La segunda variable es la dirección URL completa de la carpeta anterior. Ejemplo:

var $imageDirectory = 'image_directory';
var $imageURL = 'http://localhost/mi_sistema_captcha/image_directory';

Paso 3: Creamos un archivo PHP, le damos cualquier nombre, para este ejemplo index.php.  Lo que vamos hacer es:

  • Llamar a la clase captcha.class.php
  • Crear una instancia de la clase Captcha
  • Usamos el método create() de la instancia y lo pasamos a una variable, en este caso $captchaImage
  • Note: que verificamos si la variable POST[$captcha->captchaInputName] esta declarada. Esto lo hacemos porque usamos el mismo archivo index.php para el proceso de verificación del captcha.
  • Usamos el método verify() para verificar si el captcha el correcto ó no. Se almacenerá el resultado en la variable $message.
  • Ya en  la parte del body, si $message esta declarado, se muestra; caso contrario mostrará el formulario. Note que imprimos la variable $captchaImage. Ésta contiene una imagen con un código y campo de texto, osea en captcha en sí.

Código de index.php

<?php
require_once('captcha.class.php');
$captcha = new Captcha;
$captchaImage = $captcha->create();

//verificamos si variables POST estan declaradas
if(isset($_POST[$captcha->captchaInputName])){

//verificamos el captcha
$verified = $captcha->verify($_POST[$captcha->captchaInputName]);
if($verified){
$message='Correcto';
}else{
$message='Incorrecto';
}
}
?>

<html>
<head>
<title>Captcha</title>
</head>

<body>
<?php
if(isset($message)){
echo $message;
}else{
?>

<form name="formulario" method="post" action="index.php">
<?php echo $captchaImage; ?>
<input type="submit" value="Verificar" />
<?php } ?>
</form>
</body>
</html>

[ ver un demostración del captcha

Realmente una práctico y sencillo.

Vía | Nodstrum 

Función "hace n días n horas n minutos" en PHP

Seguramente han visto en algunos sitios o blogs, en los post o comentarios la fecha en formato: escrito por tal_usuario hace 10 días 9 horas 7 minutos. Yo siempre me preguntaba como se hace, así que investigando (googleando) no di, así que se me ocurrió hacerlo por mi cuenta ¿Cómo? lo explicare.

Lo que necesitas es trabaja con una tabla de datos (en MySQL por ejemplo) y tener un campo de tipo datetime. Cuando realices una consulta de esta tabla hazlo de la siguiente forma:

SELECT *, UNIX_TIMESTAMP(campo_fecha) AS fecha_unix FROM mitabla

¿Qué hemos hecho? La consulta SELECT devolverá los datos con un campo adicional llamado fecha_unix, por eso usamos función la UNIX_TIMESTAMP que devuelve la fecha unix (segundos desde 1970-01-01 00:00:00 GMT). 

Ahora veamos la función PHP, la llamaremos hace() que tendrá como parámetro de entrada la fecha en formato Unix:

 function hace($fecha_unix){
//obtener la hora en formato unix
$ahora=time();

//obtener la diferencia de segundos
$segundos=$ahora-$fecha_unix;

//dias es la division de n segs entre 86400 segundos que representa un dia;
$dias=floor($segundos/86400);

//mod_hora es el sobrante, en horas, de la division de días;
$mod_hora=$segundos%86400;

//hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
$horas=floor($mod_hora/3600);

//mod_minuto es el sobrante, en minutos, de la division de horas;
$mod_minuto=$mod_hora%3600;

//minuto es la division entre el sobrante y 60 segundos que representa un minuto;
$minutos=floor($mod_minuto/60);

if($horas<=0){
echo $minutos.' minutos';
}elseif($dias<=0){
echo $horas.' horas '.$minutos.' minutos';
}else{
echo $dias.' dias '.$horas.' horas '.$minutos.' minutos';
}
}

Seguramente hay otras formas de hacer esto, pero esta es mi aportación. Espero que les sirva.

Liberando el código de Tablero dinámico (2)

Ahora veremos la parte del servidor. Creamos el archivo conexion.php con los datos de la conexión al tu servidor MySQL, algo así:

<?php
//Configuracion de la conexion a base de datos
$bd_host = "miservidor";
$bd_usuario = "miusuario";
$bd_password = "micontraseña";
$bd_base = "mibasededatos";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

Vamos con el archivo que realiza la consulta de todos los datos en la tabla tablero: consulta.php

Hacemos referencia (require) al archivo con los datos de la conexión a la base de datos MySQL (conexion.php). Obtenemos la variable GET ultfec (la variable que definimos en JavaScript), si no tiene valor entonces consultamos todos los datos de la tabla tablero caso contrario, si tiene un valor (la ultima fecha que se consultó) entonces solo se consultará la diferencia, osea todos los datos cuya fecha sea mayor a la última.

Ver Artículo Completo ››

Liberando el código de Tablero dinámico (1)

Son muchas las solicitudes para mostrar el código fuente del Tablero dinámico, el fisgón (si así desean llamarlo) de este blog, por ello aquí explicaré su funcionamiento desde el registro de la hora, ip y enlace del articulo hasta el efecto de alumbrado o fade de color amarillo y la creación de los divs mediante el manejo del DOM con JavaScript.

Ver Artículo Completo ››

Editar código en tiempo real (online) con CodePress

CodePress es una de los mas sorprendentes editores de código online. La implementación es parte del proyecto ECCO, un IDE web en estado alfa, y su creador consideró separar una parte de este IDE y convertirlo en CodePress.

Editor de código online

Caracteristicas

  • Resaltado de sintáxis en tiempo real.
  • Soporta lenguajes ASP, CSharp, CSS, HTML, Java, JavaScript, Perl, PHP, Ruby, SQL y VBScript.
  • Snippets (pequeños fragmentos de códigos útiles).
  • Autocompletado de código.
  • Shortcuts.
  • Multiples instancias de CodePress en la misma página.

Enlaces | CodePress

5 cosas que puedes hacer con PHP en Windows

Interesante artículo que muestra 'cosillas' que podemos hacer en Windows con el lenguaje para script/server PHP. Funciona así lo ejecutemos desde un servidor web Apache o IIS. Para muestra un bótón:

Expulsar un CD-ROM

 //create an instance of Windows Media Player

$mp = new COM("WMPlayer.OCX");

//ejects the first cd-rom on the drive list

$mp->cdromcollection->item(0)->eject();

¿Interesante verdad? El artículo completo explica además:

  • Leer y escribir desde/al registro.
  • Registrar (o lo contrario) script de PHP como servicios de Windows.
  • Imprimir página.
  • Listar los procesos del sistema actuales.

Enlace | 5 cool things you can do with windows and php

fValidator: validando formularios con JavaScript y mootools

Mediante fValidator podemos usar JavaScript para validar los campos de un formulario HTML antes de ser enviados. Puede validar campos tipo alfabéticos, numéricos, fecha, coincidencia de campos (contraseñas) y mas. Esta utilidad trabaja con mootools y algunas de sus dependencias: core, class, native, element, effects. Veamos una forma básica de usarlo en nuestro proyectos web.

Pero primero descargar el fValidator, existen dos versiones: un paquete comprimido (3.77KB) y una versión completa (7.20KB). También vamos a necesitar en mootools y las dependencia que sitamos arriba, puede descargarlo desde aqui.

Cómo usarlo

Dentro de las etiquetas <head> </head> llamamos a los archivos JavaScript implicados, e iniciamos el validador para nuestro formulario. Ya dentro de nuestro formulario, en cada campo especificaremos que tipo de dato validará el fValidator. Veamos un ejemplo.

Ver Artículo Completo ››

LivePipe: Componentes para desarrollo web en Ajax

LivePipe es una web donde podemos encontrar temas relacionados con PHP, Ruby y JavaScript. Un sitio que cuenta con una sección de foros, blog y proyectos, que constantemente se actualizan. Justamente en su sección Projects, encontramos pequeñas librerias que podemos usarlos en nuestro proyectos web, tales como: Control Tabs, Control Modal, Control TextArea y mas. Aparte en su blog a veces muestran ejemplos interesantes relacionados con JavaScript. Un sitio recomendado!

Ejemplos de Pipe

Reducir el tiempo de carga de una página concatenando imágenes

El uso de iconos e imágenes han sido esenciales para mostrar un entorno gráfico agradable y atractivo para el usuario en las páginas web. Ahora que se habla de la web 2.0 (donde no solo el servicio es lo que cuenta sino también un buen desarrollo web) las aplicaciones web son mas complejas, la cantidad de imágenes y de iconos puede afectar grandemente el tiempo en que se carga o muestra un página web. Todo desarrollador debe tener en cuenta que mientras mas ligera sea un página tardará menos su carga, y eso es importante en estos días en que se da mucha importancia a Ajax, lo que nos hace usar muchas librerías como script.aculo.us, prototype u otros. Claro hay versiones reducidas de estas librerias, pero aun así explicaremos un técnica para reducir la tiempo de carga de página web: concatenar las imágenes.

¿Concatenar imágenes?

Para tener una idea de lo que queremos decir, vea este ejemplo:

Imagenes separadas

Concatenando este grupo de imágenes se vería así:

Imagenes concatenadas

La idea de concatenar las imágenes es que estás estén agrupadas en un solo archivo cuando accedemos a una página web. Ya cuando van a ser mostradas las 'partiremos' en lo que corresponde. Esto se hace con CSS, una imagen transpararente GIF de 1x1 píxel y mucha imaginación.

Ver Artículo Completo ››

Videos introductorios a Ruby

En ShowMeDo encontramos una nueva serie de videos introductorios a Ruby . De momento hay 5 videos en la serie que empiezan por el uso básico del irb y las caracteristicas básicas de Ruby, pasando por creación y uso de clases, expresiones regulares, CSV y mas.

Videos Introductorios a Ruby

Navegación

Categorias

Archivos