Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/05/2010, 02:47
7sistemas
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Captchas Formulario

EmilioWebber, para implementar captchas en el formulario, hay varios sitios que en 4 pasos, te permiten hacerlo.

Yo personalmente, uso una funcion que desarrolle leyendo tutoriales y haciendo pruebas. Es realmente sencilla. Requiere el uso de sesiones y de las librerias GD de PHP.

Se necesitan dos archivos, y se implementa de la siguiente forma:

captcha.php

Código PHP:
<?php
    session_start
();
    
header("Content-type: image/png");
    
$md5 md5(microtime() * mktime());
    
$cadena substr($md5rand(525), rand(46)); //selecciona entre 4 y 6 caracteres de la cadena aleatoria de 32, comenzando en una posicion entre 5 y 25
    
$_SESSION['captcha_sess'] = $cadena;
    
$captcha imagecreatefrompng("fondo_captcha.png");
    
$black imagecolorallocate($captcha000);
    
$line imagecolorallocate($captcha,233,239,239);
    
imageline($captcha,0,0,39,29,$line);
    
imageline($captcha,40,0,64,29,$line);
    
imagestring($captcha5155$cadena$black);
    
imagepng($captcha);
?>
formulario.php

Código PHP:
<form name="contacto" method="post" action="contacto.php">
    <
div>
        <
span>Nombre: </span>
        <
span><input type="text" name="nombre" value="" /></span>
    </
div>
    <
br />
    <
div>
        <
span>Apellido: </span>
        <
span><input type="text" name="apellido" value="" /></span>
    </
div>
    <
br />
    <
div>
        <
span>Mensaje: </span>
    </
div>
    <
div>
        <
span><textarea rows="8" cols="100" name="mensaje"></textarea></span>
    </
div>
    <
br />
    <
br />
    <
div>
        <
span><img src="captcha.php" /></span>
        <
span><input type="text" name="captcha" value="" /></span>
        <
span class="_250">Introduzca los caracteres de la imagen.</span>
    </
div>
    <
br />
    <
br />
    <
input type="submit" name="continuar" value="Continuar" />
</
form
Solo te queda, en el archivo que procesa los datos del form, en este caso contacto.php, realizar la comparacion del $_POST['captcha'] con $_SESSION['captcha_sess'].

Leete el manual para entender que hace cada funcion (imagecreatefrompng, etc.) asi lo aprendes. Ya tienes el ejemplo practico.

Espero haber sido de ayuda.

Saludos

Última edición por 7sistemas; 06/05/2010 a las 02:52