Foros del Web » Programando para Internet » PHP »

Como crear un Captcha en mi formulario

Estas en el tema de Como crear un Captcha en mi formulario en el foro de PHP en Foros del Web. Tengo el siguiente formulario en mi archivo envio_datos.php: <form action="calculo_velocidad1.php" method="post" enctype="multipart/form-data"> <label for="file">No. de Exámenes:</label> <input type="text" name="num" id="text" tabindex="0" /> <br/> <input type="submit" ...
  #1 (permalink)  
Antiguo 24/03/2010, 12:06
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Exclamación Como crear un Captcha en mi formulario

Tengo el siguiente formulario en mi archivo envio_datos.php:

<form action="calculo_velocidad1.php" method="post" enctype="multipart/form-data">
<label for="file">No. de Exámenes:</label>
<input type="text" name="num" id="text" tabindex="0" />
<br/>

<input type="submit" name="submit" value="Consultar" / >
</form>

y lo que necesito es crearle un Captcha... He visto algunos ejemplos, pero algunos hablan de variables de sesión y habilitar cosas....

¿Alguién puede ayudarme para ingresar en mi form un Captcha?

Gracias
  #2 (permalink)  
Antiguo 24/03/2010, 12:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como crear un Captcha en mi formulario

el primero paso a todo esto es, ¿ya has investigado algo antes??

porque si es así deberías haber visto ejemplos, scripts, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/03/2010, 12:24
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Como crear un Captcha en mi formulario

Tienes razón, me faltó decir que no entiendo los ejemplos que he visto.... Por ejemplo: [URL="http://blog.unijimpe.net/crear-captcha-con-php/"]http://blog.unijimpe.net/crear-captcha-con-php/[/URL], en la cual me manda crear variables de sesion....

También he checado este otro ejemplo
Código PHP:
function captcha(){
        
$md5 md5(microtime() * mktime());
        
$string substr($md5,0,5);
        
$_SESSION['key'] = $string;

        
header("Content-type: image/png");
        
$im imagecreatetruecolor(19848);
        
$bg imagecolorallocate($im255255255);
        
imagefilledrectangle($im342139199$bg);
        
$fonts "fonts/Blazed.ttf";
        
        
$izq 98/42;
        
$t_color imagecolorallocate($immt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
        
imagettftext($im291$izq42$t_color$fonts$string);
        
imagepng($im);
    } 
pero no me arroja errores, pero tampoco resultados....

Y por eso es que decidí escribir mi duda.
  #4 (permalink)  
Antiguo 24/03/2010, 14:48
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 7 meses
Puntos: 0
Caso resuelto.

Resulta que no tenía que dar tanta vuelta saltando entre páginas.... sólo usando el mismo form... de la siguiente manera

Código PHP:
//form.php
<?php
session_start
();
?>
<HTML>
<HEAD>
<TITLE>PHP-CAPTCHA </TITLE>
<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">
</HEAD>
<BODY onLoad="return focuson();">
<script   language="javascript">
function focuson()
  { document.form1.number.focus()}

function check()
    {
    if(document.form1.number.value==0)
        {
        alert("Please enter your Category Name");
        document.form1.number.focus();
        return false;
        }
    }

</script>
<?php

   
if(isset($_REQUEST['Submit'])){
      
$key=substr($_SESSION['key'],0,5);
      
$number $_REQUEST['number'];
      if(
$number!=$key){
          echo 
'<center><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">
           Validation string not valid! Please try again!</font></center>'
;}
      else{
           echo 
'<center><font face="Verdana, Arial, Helvetica, sans-serif"  color="#66CC00">
            Your string is valid!</font></center>'
;} 
     }
?>
<form name="form1" method="post" action="form.php"   onSubmit="return check();">
<table width="342" align="center" cellspacing="0" bgcolor="#D4D0C8">
<tr>
  <td colspan="4" align="center"><hr></td>
  </tr>
<tr>
  <td width="8" align="center">&nbsp;</td>
  <td width="330" align="right" valign="top">&nbsp;</td>
  <td width="330" align="right" valign="top">&nbsp;</td>
  <td width="2" align="center">&nbsp;</td>
</tr>
<tr>
  <td align="center">&nbsp;</td>
  <td align="right" valign="top">&nbsp;</td>
  <td align="right" valign="top">&nbsp;</td>
  <td align="center">&nbsp;</td>
</tr> 

<tr>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center"><img src="php_captcha.php"></td>
  <td align="center">&nbsp;</td>
</tr>
<tr>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
</tr>
<tr>
  <td align="center">&nbsp;</td>
  <td align="center"> Please enter the string shown in the image in the form.<br></td>
  <td align="center"><input name="number" type="text" id=\&quot;number\&quot;></td>
  <td align="center">&nbsp;</td>
</tr>
<tr>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
</tr>
<tr>
  <td align="center">&nbsp;</td>
  <td align="center">&nbsp;</td>
  <td align="center"><input name="Submit" type="submit"   value="Submit"></td>
  <td align="center">&nbsp;</td>
</tr>
<tr>
  <td colspan="4" align="center"><hr></td>
  </tr>
</table>
</form>
</BODY>
</HTML>
Código PHP:
//php_captcha.php
<?php
session_start
();

$RandomStr md5(microtime());// md5 to generate the random string

$ResultStr substr($RandomStr,0,5);//trim 5 digit 

$NewImage =imagecreatefromjpeg("img.jpg");//image create by existing image and as back ground 

$LineColor imagecolorallocate($NewImage,233,239,239);//line color 
$TextColor imagecolorallocate($NewImage255255255);//text color-white

imageline($NewImage,1,1,40,40,$LineColor);//create line 1 on image 
imageline($NewImage,1,100,60,0,$LineColor);//create line 2 on image 

imagestring($NewImage52010$ResultStr$TextColor);// Draw a random string horizontally 

$_SESSION['key'] = $ResultStr;// carry the data through session

header("Content-type: image/jpeg");// out out the image 

imagejpeg($NewImage);//Output image to browser 

?>
y todo resuelto.
  #5 (permalink)  
Antiguo 24/03/2010, 14:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como crear un Captcha en mi formulario

perfecto!!

espero hayas comprendido bien la técnica, así el tema se vuelve mas útil si expones lo que entendiste... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 24/03/2010, 16:27
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Como crear un Captcha en mi formulario

Te recomiendo usar recaptcha es sencillo y toda la gente sabe como utilizarlo ya que varios sitios lo usan
  #7 (permalink)  
Antiguo 14/12/2012, 09:59
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Como crear un Captcha en mi formulario

Como bien dice zuker el captcha de recaptcha es una buena alternativa, es el sistema que usan en foros del web, es gratuito, ellos mismo lo actualizan (el equipo de google) y con los datos ingresados ayudas a digitalizar libros :)

Última edición por danilope; 14/12/2012 a las 15:23

Etiquetas: captcha, 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




La zona horaria es GMT -6. Ahora son las 06:11.