Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/02/2013, 08:18
betualla
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Captcha no se ve la imagen una vez subo al servidor

Hola Nemutagk
Lo siento no sabia como ponerlo, ahora creo que si, sigo son resolverlo,

Bueno no tengo mucha idea, lo siento, y todo lo que hago lo hago leyendo mucho,
tengo un problema y es que la imagen captcha no se ve una vez subido todo al servidor, he seguido estos pasos y no logro encontrar el porque no se ve la imagen, me falta algo?

( aqui lo podeis ver mejor: http://www.forosdelweb.com/f18/como-implementar-captcha-formulario-html-php-844451/)

esto es lo que he echo:

La imagen captcha la genero con este código, aunque hay otros que también funcionan: (nombre archivo: captcha:php)

Código PHP:
Cita:
< ?php

function randomText($length) {
$pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi jklm nopqrstuvwxyz";
for($i=0;$i<$length;$i++) { $key .= $pattern{rand(0,62)}; }
return $key;
}

session_start();

// PARAMETROS DE LA IMAGEN //////////////////////////////
$ancho = 100; // Ancho de la imágen
$alto = 30; // Alto de la imágen
$lineas = 6; // Cantidad de lineas de relleno
$chars = 6; // Cantidad de caracteres del captcha

// CREO EL OBJETO IMAGEN Y LOS COLORES A UTILIZAR ///////
$imagen = imagecreate($ancho,$alto);
$cLineas = imagecolorallocate($imagen,140,140,140);
$cFondo = imagecolorallocate($imagen,200,200,200);
$cTexto = imagecolorallocate($imagen,000,000,000);

// PINTO EL FONDO ///////////////////////////////////////
imagefill($imagen, 0, 0, $cFondo);

// AGREGO UNAS LINEAS DE RELLENO ////////////////////////
for($c=0; $c <= $lineas; $c++) {
$x1=rand(0,$ancho);
$y1=rand(0,$alto);
$x2=rand(0,$ancho);
$y2=rand(0,$alto);
imageline($imagen,$x1, $y1, $x2, $y2, $cLineas);
}

// GENERO EL TEXTO ALEATORIO ////////////////////////////
$_SESSION['tmptxt'] = randomText($chars);

// AGREGO EL TEXTO ALEATORIO A LA IMAGEN ////////////////
imagestring($imagen, 5, 25, 7, $_SESSION['tmptxt'], $cTexto);

// DEVUELVO LA IMAGEN GENERADA //////////////////////////
header("Content-type: image/jpeg", true);
imagejpeg($imagen);

// DESTRUYO EL OBJETO IMAGEN PARA LIBERAR MEMORIA ///////
imagedestroy($imagen);

?>
En el formulario coloco la siguiente línea para presentar la imagen captcha:

Código HTML:

Cita:
< br>
< img src="http://www.aytoquintanar.org/images/captcha.php" width="100" height="30"> <input name="tmptxt" type="text">
Código de seguridad (mayúsculas, minúsculas y números)<br>
< br>

y el código php de verificación del captcha y formulario quedaría así: (nombre archivo: enviar:php)

< ?php

session_start();

// Configuracion
$conf['mailDestinatario'] = '[email protected] ';
$conf['mailAsunto'] = 'Buzon';
$conf['url_error'] = 'http://www.dominio.es/---cambiar por la página de error---';
$conf['url_ok'] = 'http://www.dominio.es/---cambiar por la página de ok---';

################################################## ####################
# codigo de verificacion
################################################## ####################

// Validar argumentos y captcha
if(!$_POST) {
header('Location: '.$conf['url_error']);
exit;
}

if ($_SESSION['tmptxt'] != $_POST['tmptxt']) {
header('Location: '.$conf['url_error']);
exit;
}

// Limpiar input de usuario
foreach($_POST as $id=>$value) {
$var[$id] = strip_tags(trim($value));
}

// Definir cuerpo del email
foreach($var as $id=>$value) {
$mailCuerpo .= "$id : $value\r\n";
}

// Enviar correo
if(mail($conf['mailDestinatario'], $conf['mailAsunto'], $mailCuerpo)) {
header('Location: '.$conf['url_ok']);
} else {
header('Location: '.$conf['url_error']);
}

?>
A ver si alguien me puede ayudar, repito el problema esque una vez subido al servidor, al imagen no se muestra?
un slaudo
Betualla