PHP - No me funciona la funcion captcha

   
Vista:

No me funciona la funcion captcha

Publicado por Sergio (9 intervenciones) el 08/06/2008 17:47:36
Hola, estoy probando poniendo captcha en mi web, pero estoy haciendo pruebas y no me funciona, lo que hago es el en form, es llamar a una funcion Comprobar que tiene en esa misma pagina, pero no me funciona, os pongo el codigo asi se ve mejor

.....
<body>
<?php
function Comprobar(){
if ($_SESSION['captcha_code']==$_REQUEST['codigo'])
echo "alert('SI')";
else
echo "alert('NO')";
}
?>
<form id="form1" name="form1" method="post" action="<?php Comprobar(); ?>">
<p>CODIGO DE SEGURIDAD:
<?php $captcha = new CaptchaImage(110,30,5,'FFFFFF','000000','FFFFFF'); ?></p>
<p>REPETIR CODIGO:
<label>
<input name="codigo" type="text" id="codigo" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Enviar" />
</label>
</p>
</form>
....

Preferiria que para validar sea en la misma pagina, ya que tengo unos cuantos formularios distintos para validar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No me funciona la funcion captcha

Publicado por rockmuerte (146 intervenciones) el 08/06/2008 19:12:04
yo hago el captcha un poco diferente pero = funka haver si te agrada.

primero creu un archivo llamado crear_imagen.php

<?php
//creamos la imagen definiendo el tamaño del alto y el ancho (150, 40)
$captcha_imagen = imagecreate(150,40);
//creamos el color negro para el fondo y blanco para los caracteres
$color_negro = imagecolorallocate ($captcha_imagen, 0, 0, 0);
$color_blanco = imagecolorallocate ($captcha_imagen, 255, 255, 255);
//pintamos el fondo con el cplor negro creado anteriormente
imagefill($captcha_imagen, 0, 0, $color_negro);
//iniciamos la session para obtener los caracteres a dibujar
session_start();
$captcha_texto = $HTTP_SESSION_VARS["captcha_texto_session"];
//dibujamos los caracteres de color blanco
imagechar($captcha_imagen, 4, 20, 13, $captcha_texto[0] ,$color_blanco);
imagechar($captcha_imagen, 5, 40, 13, $captcha_texto[1] ,$color_blanco);
imagechar($captcha_imagen, 3, 60, 13, $captcha_texto[2] ,$color_blanco);
imagechar($captcha_imagen, 4, 80, 13, $captcha_texto[3] ,$color_blanco);
imagechar($captcha_imagen, 5, 100, 13, $captcha_texto[4] ,$color_blanco);
imagechar($captcha_imagen, 3, 120, 13, $captcha_texto[5] ,$color_blanco);
//indicamos que lo que vamos a mostrar es una imagen
header("Content-type: image/jpeg");
//mostramos la imagen
imagejpeg($captcha_imagen);
?>

otro archivo que diga verificar.php

<?php
session_start();
$texto_ingresado = $HTTP_POST_VARS["texto_ingresado"];
$captcha_texto = $HTTP_SESSION_VARS["captcha_texto_session"];
if ($texto_ingresado == $captcha_texto) {
echo "Usted ingreso el codigo correctamente.";
} else {
echo "El texto ingresado no coincide. Por favor intentelo de nuevo!";
}
session_unset();
session_destroy();
?>

y finalmente index.php

<?php
session_start();
$captcha_texto = "";
for ($i = 1; $i <= 6; $i++) {
$captcha_texto .= caracter_aleatorio();
}
$HTTP_SESSION_VARS["captcha_texto_session"] = $captcha_texto;
function caracter_aleatorio() {
$valor_aleatorio = mt_rand(1,3);
switch ($valor_aleatorio) {
case 1:
$valor_aleatorio = mt_rand(97, 122);
break;
case 2:
$valor_aleatorio = mt_rand(48, 57);
break;
case 3:
$valor_aleatorio = mt_rand(65, 90);
break;
}
return chr($valor_aleatorio);
}
?>
<p>Captcha: Formularios mas seguros.</p>
<hr size="1" noshade="noshade" />
<p>Por favor ingrese el codigo que ve en la imagen, sino puede leerlo actualize la pagina.</p>
<p align="center"><img src="crear_imagen.php?<?php echo SID; ?>" /></p>
<form action=verificar.php method="POST">
<p>Ingrese el codigo:
<input name="texto_ingresado" type="text" id="texto_ingresado" size="30" />
<input type="submit" name="Submit" value="OK" />
</p>
</form>
<p><b>Nota:</b> El codigo es sensible a las mayusculas y minisculas</p>

y ya tienes un ejemplo de como.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por Sergio (9 intervenciones) el 08/06/2008 19:37:34
Gracias, es buena idea sobre todo por lo de crear la imagen, lo que pasa es que yo tengo 2 formularios para verificar y preferiria que habria una pagina de verificacion para los 2 formularios, habia pensado en crear una variable con HTTP_REFERER.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por rockmuerte (146 intervenciones) el 08/06/2008 20:04:05
PUES BIEN TE SUGIERO EN VERDAD QUE NO USES HTTP_REFERER SE HAN PRESENTADO SERIOS PROBLEMAS DE VULNERABILIDAD, PERO SI TIENES 2 FORMULARIOS Y QUIERES QUE LOS 2 TENGAS, PUES SOLO LLAMA A LA MISMA FUNCIÓN Y YA, O TAL VES NO TE ESTOY ENTIENDO MUY BIEN.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por Sergio  (9 intervenciones) el 08/06/2008 20:11:07
Te explico mejor, preferia que la funcion verificar.php, que me has dicho me valdria para verificar los 2 formularios que tengo (Contacto, Inscripciones), si estoy en el formulario Contacto y si la imagen es correcta me envie el formulario si no es correcta vuelva al formulario contacto.php, lo mismo para inscripciones.

He estado probando con el contacto, poniendo la imagen correcta y cuando no es correcto le pongo header(...), pero me da errores en el header.

Espero que te haya aclarado algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por rockmuerte (146 intervenciones) el 08/06/2008 20:29:11
claro esa seria la respuesta el header, si es una vaina también lo intente y lo mande al diablo, pero encontré otra respuesta en otro codigo, el JAVASCRIPT

enbes del header pon esto.

echo "<script language='javascript'>location.href='PAGINA.PHP';</script>";

y listo funka mas que bien este codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por Sergio (9 intervenciones) el 08/06/2008 20:47:28
Gracias no se me habia ocurrido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me funciona la funcion captcha

Publicado por Sergio (9 intervenciones) el 09/06/2008 23:22:35
He estado probando a fondo lo que me dijiste y he encontrada un "problemilla", hay alguna forma de que el texto que sale en la imagen sea un poco mas grande

Gracias y perdon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar