Foros del Web » Programando para Internet » PHP »

Duda con un captcha

Estas en el tema de Duda con un captcha en el foro de PHP en Foros del Web. Hola, tengo un captcha pero distingue entre mayusculas y minusculas Quisiera saber como hacer para que no distinga y tambien como agrandar el tamaño de ...
  #1 (permalink)  
Antiguo 06/09/2007, 23:22
 
Fecha de Ingreso: diciembre-2005
Mensajes: 249
Antigüedad: 18 años, 4 meses
Puntos: 0
Duda con un captcha

Hola, tengo un captcha pero distingue entre mayusculas y minusculas
Quisiera saber como hacer para que no distinga y tambien como agrandar el tamaño de la letra con la que crea la imagen


crear_imagen.php
Código 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_imagen000);
$color_blanco imagecolorallocate ($captcha_imagen255255255);
//pintamos el fondo con el cplor negro creado anteriormente
imagefill($captcha_imagen00$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_imagen42013$captcha_texto[0] ,$color_blanco);
imagechar($captcha_imagen54013$captcha_texto[1] ,$color_blanco);
imagechar($captcha_imagen36013$captcha_texto[2] ,$color_blanco);
imagechar($captcha_imagen48013$captcha_texto[3] ,$color_blanco);
imagechar($captcha_imagen510013$captcha_texto[4] ,$color_blanco);
imagechar($captcha_imagen312013$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);
?>
y la funcion:

Código PHP:
function caracter_aleatorio() {
mt_srand((double)microtime()*1000000);
$valor_aleatorio mt_rand(1,3);
switch (
$valor_aleatorio) {
case 
1:
$valor_aleatorio mt_rand(97122);
break;
case 
2:
$valor_aleatorio mt_rand(4857);
break;
case 
3:
$valor_aleatorio mt_rand(6590);
break;
}
return 
chr($valor_aleatorio);

$captcha_texto "";
for (
$i 1$i <= 6$i++) {
$captcha_texto .= caracter_aleatorio();
}
$HTTP_SESSION_VARS["captcha_texto_session"] = $captcha_texto
  #2 (permalink)  
Antiguo 07/09/2007, 04:38
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Re: Duda con un captcha

No veo donde compruebas que sea iguales el campo del formulario y la variable de sesión que almacena la cadena aleatoria.
  #3 (permalink)  
Antiguo 07/09/2007, 04:42
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Re: Duda con un captcha

Lo del tamaño de letra no sé, mira en las funciones GD de PHP.net

Para que no distinga entre mayúsculas y minúsculas, cuando compares el valor del usuario, en un if, supongo, haz esto:
Código PHP:
<?php
$introducido 
$_POST['captcha'];
$esperado $_SESSION['captcha_texto_session'];

if(
strtolower($introducido) === strtolower($esperado)) {
// Todo bien
} else { /* Tú sabrás qué decirle :D */ }
?>
Si no te sirven las superglobales $_*** utiliza $HTTP_***_VARS, pero estas están disponibles desde PHP 4.1.0
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
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 17:28.