Foros del Web » Programando para Internet » PHP »

Implementar captcha en formulario

Estas en el tema de Implementar captcha en formulario en el foro de PHP en Foros del Web. Hola, Estoy intentando implementar un captcha en mi formulario de mi Web, pero no consigo que funcione conjuntamente por más cambios que hago. He conseguido ...
  #1 (permalink)  
Antiguo 26/05/2007, 20:34
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Implementar captcha en formulario

Hola,

Estoy intentando implementar un captcha en mi formulario de mi Web, pero no consigo que funcione conjuntamente por más cambios que hago.

He conseguido un captcha en tres archivos que funciona perfectamente, lo que no se hacer es que funcione junto a el formulario para enviar anuncios.

El formulario lo pueden ver en tablonia . es en el archivo: ag_clasificado.php (Enviar anuncios)

Es que no me deja poner la url.

Por favor, me pueden ayudar?

Muchas gracias
Saludos
  #2 (permalink)  
Antiguo 26/05/2007, 20:47
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Implementar captcha en formulario

Hola, deberías mostrar el código con el que has trabajado para poderte ayudar.
Por otro lado estuve probando el formulario y cuando hay un error se borran todos los datos que ya habias cargado. Eso no es bueno.

Saludos
  #3 (permalink)  
Antiguo 26/05/2007, 21:27
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Implementar captcha en formulario

Hola usermax,

Estos son los códigos:

crear_imagen.php
<?

$captcha_imagen = imagecreate(150,40);

$color_negro = imagecolorallocate ($captcha_imagen, 0, 0, 0);
$color_blanco = imagecolorallocate ($captcha_imagen, 255, 255, 255);

imagefill($captcha_imagen, 0, 0, $color_negro);

session_start();
$captcha_texto = $HTTP_SESSION_VARS["captcha_texto_session"];

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);

header("Content-type: image/jpeg");
imagejpeg($captcha_imagen);

?>


formulario.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() {

mt_srand((double)microtime()*1000000);

$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);
}

?>
<head>
<title>Captcha: Formularios mas seguros.</title>
</head>

<body style="font-family: Verdana, Arial, Helvetica, sans-serif ; font-size: 12px">
<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 mayuculas y minisculas</p>
</body>
</html>


verificar.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();

?>


Lo estoy probando en una Web diferente, en kikoblog . com, pero como he dicho antes no consigo hacerlo funcionar conjuntamente.

Lo que dices tienes razón, los datos en mi formulario se borran cuando hay alguno sin rellenar, no se como cambiar esto ya que me lo entregaron así.

Si necesitas cualquier otro dato, puedo enviarlo.

Gracias,
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 00:51.