Foros del Web » Programando para Internet » PHP »

ayuda con captcha en php

Estas en el tema de ayuda con captcha en php en el foro de PHP en Foros del Web. wenas, tengo este codigo de captcha en php . este es el archivo con el form de ejemplo: Código PHP: <?php session_start (); if ( $_POST ...
  #1 (permalink)  
Antiguo 12/07/2009, 12:14
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Pregunta ayuda con captcha en php

wenas, tengo este codigo de captcha en php .

este es el archivo con el form de ejemplo:

Código PHP:
<?php
session_start
();
if (
$_POST['action'] == "checkdata") {
    if (
$_SESSION['tmptxt'] == $_POST['tmptxt']) {
        echo 
"codigo correcto";
    } else {
        echo 
"Error: Intentalo nuevamente";
    }
    exit;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>CAPTCHA con PHP</title>
<meta name="description" content="CAPTCHA con PHP: ejemplo para demostrar la creacion de Captcha con PHP." />
<link href="styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center" class="descdet">
    <div class="bordeder">
        <strong class="subder">CAPTCHA con PHP </strong><br>
        Ingresar el texto mostrado en la imagen <br>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
          <img src="captcha.php" width="100" height="30" vspace="3"><br>
          <input name="tmptxt" type="text" size="30"><br>
          <input name="btget" type="submit" class="boton" value="Verificar Codigo">
          <input name="action" type="hidden" value="checkdata">
        </form>
    </div>
    </td>
  </tr>
</table>
</body>
</html>
y este el archivo captcha.php

Código PHP:
<?php
session_start
();
function 
randomText($length) {
    
$pattern "1234567890abcdefghijklmnopqrstuvwxyz";
    for(
$i=0;$i<$length;$i++) {
      
$key .= $pattern{rand(0,35)};
    }
    return 
$key;
}

$_SESSION['tmptxt'] = randomText(8);
$captcha imagecreatefromgif("bgcaptcha.gif");
$colText imagecolorallocate($captcha000);
imagestring($captcha5167$_SESSION['tmptxt'], $colText);

header("Content-type: image/gif");
imagegif($captcha);
?>
bueno lo que hace es crear una imagen con el texto de la sesion : tmptxt dentro de bgcaptcha.gif

mi problema es que no se como adaptarlo a mi formulario de registro.

lo he puesto ,y funciona corectamente : comprueba si he puesto bien o mal el codigo, pero si lo pongo bien no se ejecuta el codigo que tengo para registrar a los usuarios , solo aparece el mensaje : codigo correcto

que puedo hacer para que al comprobar si es correcto el codigo siga realizando las demas tareas.

recoja los datos enviados por post y se ejecute normalmente.

muchas gracias..
  #2 (permalink)  
Antiguo 12/07/2009, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: ayuda con captcha en php

simple...

crea una variable "flag" antes de todo...

y dependiendo del captcha le asignas un valor true/false

ya después, usa es valor como necesites...


obviamente debes eliminar el exit, y los echo y solo reducirlo a una asignación booleana
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/07/2009, 12:31
 
Fecha de Ingreso: diciembre-2006
Mensajes: 153
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: ayuda con captcha en php

Cita:
Iniciado por pateketrueke Ver Mensaje
simple...

crea una variable "flag" antes de todo...

y dependiendo del captcha le asignas un valor true/false

ya después, usa es valor como necesites...


obviamente debes eliminar el exit, y los echo y solo reducirlo a una asignación booleana
puedes especificarme como podria hacerlo x favor.
es que no tengo mucha idea del tema.
me has dixo crear una variable flag, yo uso esto para validar que los campos no esten vacios en el registro de usuarios:

Código PHP:
//creo un Array de errores
    
$errmsg_arr = array();
    
    
//Validation error flag
    
$errflag false
y luego pongo el if:

Código PHP:
if($campo == '') {
        
$errmsg_arr[] = 'introduzca algo en el campo';
        
$errflag true;
    } 
lo guardo en una sesion:

Código PHP:
//If there are input validations, redirect back to the registration form
    
if($errflag) {
        
$_SESSION['ERRORES'] = $errmsg_arr;
        
session_write_close();
        
header("location: errores.php");
        exit();
    } 
y los muestro en errores.php

tendria que hacer un //Validation error flag
$errflag = false;


nuevo..

para validar el captcha o algo asi??

gracias por la ayuda..


saludos
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 12:55.