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

Hola a todos/as

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:
<?php

function randomText($length) {
$pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm 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:

<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