Foros del Web » Programando para Internet » PHP »

Captchas Formulario

Estas en el tema de Captchas Formulario en el foro de PHP en Foros del Web. Quisiera preguntar si sabeis si hay captchas directamente para insertar en mi formulario, sin apenas modificar nada o poco. Un saludo....
  #1 (permalink)  
Antiguo 06/05/2010, 01:59
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Captchas Formulario

Quisiera preguntar si sabeis si hay captchas directamente para insertar en mi formulario, sin apenas modificar nada o poco.

Un saludo.
  #2 (permalink)  
Antiguo 06/05/2010, 02:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Captchas Formulario

Existen ya unos código que puedes colocar un captcha. Te recomiendo que busques en internet que hay mucho material con el que puedes lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 06/05/2010, 02:35
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Respuesta: Captchas Formulario

Ya busqué, pero al final no encuentro nada en claro..

Gracias de todas formas.
  #4 (permalink)  
Antiguo 06/05/2010, 02:47
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
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
  #5 (permalink)  
Antiguo 06/05/2010, 02:50
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
Puntos: 2
Respuesta: Captchas Formulario

Esto se puede complicar todo lo que quieras. Inclusive cambiar el tipo de fuente para usar fuentes TrueType, y que esten inclinadas. Todo un mundo de posibilidades.
  #6 (permalink)  
Antiguo 06/05/2010, 02:59
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Respuesta: Captchas Formulario

Ya lo conseguí, muchas gracias por la información.

Un saludo.
  #7 (permalink)  
Antiguo 06/05/2010, 03:13
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Respuesta: Captchas Formulario

Otra cosa, cuando veo la página de contacto en local no hay problema (me refiero a q se ve el captcha), pero cuando lo subo a mi servidor ftp no aparece, falta algo de configurar o algo?

Ayuda porfavor!
  #8 (permalink)  
Antiguo 06/05/2010, 03:22
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
Puntos: 2
Respuesta: Captchas Formulario

El archivo captcha.php debe estar en el mismo directorio que el archivo del formulario. Si los pones en sitios diferentes, actualiza las rutas de acceso. Por ejemplo: <img src="includes/captcha.php">

Ademas, necesitaras una imagen en formato PNG, cuyo nombre es fondo_captcha.png. Eso viene indicado por header("Content-type: image/png").

Todos estos archivos deben estar en el servidor.

¿Que version de PHP utilizas? Con una version igual o superior a la 5.0 deberia funcionar correctamente.
  #9 (permalink)  
Antiguo 06/05/2010, 03:24
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Respuesta: Captchas Formulario

Version 5.2.5
  #10 (permalink)  
Antiguo 06/05/2010, 03:42
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
Puntos: 2
Respuesta: Captchas Formulario

¿Y el registro de errores lo has mirado?
¿Por que no pones echo's en los sitios que crees que puede fallar, para ver el estado?

Y publica tus archivos, para ver la implementacion.
  #11 (permalink)  
Antiguo 06/05/2010, 03:44
 
Fecha de Ingreso: abril-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Respuesta: Captchas Formulario

Ya localicé el error. Ya sale bien.

Muchas gracias por toda la ayuda.

Un saludo.
  #12 (permalink)  
Antiguo 06/05/2010, 03:58
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años
Puntos: 2
Respuesta: Captchas Formulario

Comentalo, asi si a alguien le pasa lo mismo, al menos sabra que revisar.

Saludos.

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:04.