Foros del Web » Programando para Internet » PHP »

Problema con captcha en PHP

Estas en el tema de Problema con captcha en PHP en el foro de PHP en Foros del Web. Que onda chamacones pues una vez mas pido de su ayuda con un pequeño problema que tengo con la creación de captchas espero me puedan ...
  #1 (permalink)  
Antiguo 28/08/2010, 13:07
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 1
Pregunta Problema con captcha en PHP

Que onda chamacones pues una vez mas pido de su ayuda con un pequeño problema que tengo con la creación de captchas espero me puedan brindar de sus conocimientos.

El asunto es que no me muestra de manera correcta dicho formulario con el captcha me manda un error en la siguiente linea de codigo:

Esto se encuentra dentro del archivo captchad.php:
Código PHP:
if ($_POST['action1'] == 'checkdata') { 
He aquí el código que estoy implementado.

El que realiza la mayor parte del trabajo para realizar dicho proceso captcha.php :

Código PHP:
<?php
session_start
();


function 
randomText($length,$type=0) {
    switch (
$type) {
        case 
0$pattern "1234567890abcdefghijklmnopqrstuvwxyz"; break;
        case 
1$pattern "abcdefghijklmnopqrstuvwxyz"; break;
        case 
2$pattern "1234567890"; break;
    }
    
$max strlen($pattern)-1;
    
$key '';
    for(
$i=0$i<$length$i++) {
        
$key .= $pattern{mt_rand(0,$max)};
    }
    return 
$key;
}

    
/*for($i=0;$i < $length;$i++) $key .= $pattern{mt_rand(0,$max)};
    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);
?>
Formulario donde se valida la captura captchad.php:

Código HTML:
<?php
session_start();
if ($_POST['action1'] == 'checkdata') {
	if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {
		header('new_user.php');
	} else {
		echo "Intentalo nuevamente";
	}
	exit;
}
?>

<html>
<head>
<title>CAPTCHA con PHP</title>
<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="captchad.php" 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="action1" type="hidden" value="checkdata">
		</form>
	</div>
	</td>
  </tr>
</table>
</body>
</html> 
Fuente: [URL="http://blog.unijimpe.net/crear-captcha-con-php/"]Crear Captcha[/URL]
  #2 (permalink)  
Antiguo 28/08/2010, 13:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con captcha en PHP

¿y se puede saber el mensaje de error o hay que adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/08/2010, 14:52
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Problema con captcha en PHP

el mensaje de error es el siguiente:

Notice: Undefined index: action1 in C:\direcctorio\captchademo.php on line 4
  #4 (permalink)  
Antiguo 28/08/2010, 19:17
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Respuesta: Problema con captcha en PHP

header('Location: index...');
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #5 (permalink)  
Antiguo 28/08/2010, 22:54
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Problema con captcha en PHP

Bueno solo cambie algunas cosas realmente no es mucho pero me sirvió de manera que ahora estoy mas tranquilo


Este archivo prácticamente quedo igual :

Código PHP:
<?php
session_start
();


function 
randomText($length,$type=0) {
    switch (
$type) {
        case 
0$pattern "1234567890abcdefghijklmnopqrstuvwxyz"; break;
        case 
1$pattern "abcdefghijklmnopqrstuvwxyz"; break;
        case 
2$pattern "1234567890"; break;
    }
    
$max strlen($pattern)-1;
    
$key '';
    for(
$i=0$i<$length$i++) {
        
$key .= $pattern{mt_rand(0,$max)};
    }
    return 
$key;
}

    
/*for($i=0;$i < $length;$i++) $key .= $pattern{mt_rand(0,$max)};
    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);
?>
Formulario final el cual fue el que modifique :

Código HTML:
<?php
session_start();
//************************************************************
En esta parte fue donde se cambio la sentencia if y funciona bien = si alguien
puede modificarlo de manera mas productiva pues mucho mejor ^_^
*************************************************************/
if ($_POST) {
	if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {
		header('Location: new_user.php');
	} else {
		header('Location: error.php');
	}
	exit;
}
//**************************************************************/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<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">Validar</strong><br>
		Ingresar el texto mostrado en la imagen <br>
        <form action="captchad.php" 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">
		</form>
	</div>
	</td>
  </tr>
</table>
</body>
</html> 

Espero que le sirva en un futuro

Etiquetas: captcha
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 22:02.