InicioHazlo Tu MismoSistema de Captcha v1.0

Sistema de Captcha v1.0

Hazlo Tu Mismo6/20/2012


Hola amigos de la comunidad de Taringa!, pues acá les traigo un simple sistema de captcha que he creado hace un rato para una página web de mi Universidad desarrollada desde 0.


Bueno a continuación les dejo los 3 archivos que hacen de este sistema funcional:

Imagen:




Nota: Recuerda si encuentras algún error, ya que de esta manera podemos perfeccionarlo, Gracias.

=> Index.html



<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//ES' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<head>
<title>CAPTCHA V1.0 - EcuaSoft</title>
<meta name="author" content="Alan Guevara - Ecuador" />
<meta name="revised" content="19/06/12"/>
<meta name="description" content="Prohibe el ingreso a los Bots, con un simple sistema de Captcha validado." />
</head>
<body>

<b>Ejemplo de Uso de este sistema en su v1.0 .</b>
<p> Requirimientos: PHP 5, Librería GD y Soporte de Session</p>
<?php
/** COMPROBAR LIBRERIA GD, Y VERSION DE PHP **/
if(!function_exists('gd_info')){
    die(
'Lo sentimos, no posees una version de la libreria Grafica GD propia de PHP 5');
}elseif( 
version_compare(PHP_VERSION'4.3''<') )
{
    die(
'La version de PHP, no es la adecuada para continuar con el script. ');
}elseif( !
function_exists('session_start')){
    die(
'Tu version de PHP, no posee soporte sessions ');
}
?>

<div style="width: 400px; border: 1px solid #000; margin-top: 60px; text-align: center;">

    <br/>
    Ejemplo de Uso de Captcha en Formularios: 
    <br/><br/>

    <form action="validar.php" method="POST">
        <img src="captcha.php" alt="captcha" /> 
        <br/><input type="text" name="response" value="" /> 
        <br/><input type="submit" value="Verificar Respuesta" />
    </form>

    <br/>
    (Refresca la página, para que el captcha cambie.)
    <br/><br/>

</div>

</body>
</html>




=> validar.php


<?php
//#######################################################################
//# Author: Alan Guevara Chávez                                         #
//# Filename: validar.php                                               #
//# Copyright: EcuaSoft 2012-2013 - PHP Roles Developers                #
//# Description: Sistema de Captcha Version 1.0                         #
//#                                                                     #
//# License: Este software es de uso libre, sin fines de lucro          #
//# o comercial. Ayudanos a ayudar.                                     #
//#######################################################################

//Iniciar Gestor de Session
@session_start();

if(ISSET(
$_SESSION['captcha'])){
    
//Key Generada y Guardada en una variable de Session
    
$challenge strtolower($_SESSION['captcha']);

    if(ISSET(
$_POST['response'])){
       
//Codigo ingresado por el usuario.
        
$response strtolower(trim($_POST['response']));

        
//Si la respuesta ORIGINAL, es igual a la ingresada por el Cliente.
        
        
if($challenge==$response){
          
            echo 
" Verificación Correcta. :) ";
            
        }else{
          
            echo 
" El código ingresado no coincide con la imagen. ";
        }

    } else {
        die(
"Lo siento, debes ingresar el codigo de la imagen en la respectiva casilla.");
    }

} else {
    die(
"Lo siento, la variable de session no existe. ");
}

?>


=> captcha.php



<?php
//#######################################################################
//# Author: Alan Guevara Chávez                                         #
//# Filename: captcha.php                                               #
//# Copyright: EcuaSoft 2012-2013 - PHP Roles Developers                #
//# Description: Sistema de Captcha Version 1.0                         #
//#                                                                     #
//# License: Este software es de uso libre, sin fines de lucro          #
//# o comercial. Ayudanos a ayudar.                                     #
//#######################################################################


/*
OPCIONES DE CONFIGURACION
*/

$captchaCodeLength=8;

//Dimensiones de Imagen
$width 125;
$height 30;
        
// Colores de Fondo y Texto
$bgR mt_rand(128255);
$bgG mt_rand(128255);
$bgB mt_rand(128255);
        
$txtR=$bgR 128;
$txtG=$bgG 128;
$txtB=$bgB 128;

$gridXincrement=24;
$gridYincrement=19;
$angleX=5;
$angleY=5;

/*
NO MODIFICAR ESTA LINEA .
*/

@session_start();

/* CARACTERES ALEATORIOS TOMADOS DESDE EL BANCO DE LA VARIABLE!
*/
$banco 'ABCDEFGHJKMNPQRSTUV12345689';
$newKey '';
for(
$x 0$x $captchaCodeLength$x++){
    
//Aleatorio - Posicion de caracter
   
$aleatorio mt_rand(0strlen($banco)-1);
   
//Concatenar Caracter por caracter
   
$newKey .= substr($banco$aleatorio1);
}

//Guardar Key Generada en variable de sesion
$_SESSION['captcha'] = str_replace(" """$newKey);

// Crear una nueva imagen, con dimensiones anteriormente dada.
$image imagecreate($width$height);

// Generar colores alojados.
$bgColor imagecolorallocate($image$bgR$bgG$bgB);
$txtColor imagecolorallocate($image$txtR$txtG$txtB);

// Aplicar el fondo a la imagen.
imagefill($image00$bgColor);
 
/* Distorsionar la Imagen (GRID) - Lineas interseccionadas(x,y).
*/
for($gridX 0$gridX <= $width$gridX+=$gridXincrement){
    
$gridXRAND=mt_rand($gridX$gridX+3);
    
imageline($image$gridXRAND0$gridXRAND mt_rand(0$angleX), $height$txtColor);
}
for(
$gridY 0$gridY <= $height$gridY+=$gridYincrement){
    
$gridYRAND mt_rand($gridY$gridY 6);
    
imageline($image0$gridYRAND$width$gridYRAND mt_rand(0$angleY), $txtColor);
}

// Escribir la key generada en la imagen, en sentido HORIZONTAL
$x=mt_rand(815);
$y=mt_rand(410);
imagestring  $image  $x $y$newKey$txtColor );

// Colocar un borde rectangular al resourceImagen
imagerectangle($image00$width 1$height 1$txtColor);

// Enviar Cabeceras, y prevenir que se guarde en cache los datos.
header('Expires: Mon, 16 Sept 1994 00:00:00 GMT');
header('Cache-Control: no-cache, must-revalidate');
header("Content-Type: image/gif");
imagegif($image);
imagedestroy($image);
?>




Gracias por pasar por este tema, pues de eso se trata APRENDER A APRENDER.

Saludos!
Datos archivados del Taringa! original
26puntos
591visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

P
PHP-Alan994🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.