Foros del Web » Programando para Internet » PHP »

Captcha no se ve la imagen una vez subo al servidor

Estas en el tema de Captcha no se ve la imagen una vez subo al servidor en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/02/2013, 02:51
 
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
  #2 (permalink)  
Antiguo 12/02/2013, 04:58
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Captcha no se ve la imagen una vez subo al servidor

Por favor, cada vez que publiques código usa Highlight para una correcta y facil visualización, que a ti no te cuesta nada y para nosotros nos cuesta mucho leer código así....

En fin, no se si ya testeaste captcha.php (correr directamente el script sin headers) y ver si arroja algún error, si funciona bien en local puede ser problemas de versionesÇ/configuracion o que no esta instalada/habilitada la extensión GD en el servidor...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 17/02/2013, 08:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 2 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
  #4 (permalink)  
Antiguo 17/02/2013, 11:02
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Captcha no se ve la imagen una vez subo al servidor

mmm, sin ofender pero vuelves a publicar lo mismo que al principio y no has hecho lo que te dije, no hay forma de ayudarte sin saber que es lo que esta pasando, el hecho de publicar el código no siempre va arrojar lo que esta mal...

En fin, ahora, no se si has modificado el nombre o de plano has borrado el archivo, pero el archivo "http://www.aytoquintanar.org/images/captcha.php" no existe en tu servidor!!!, este tipo de archivos si no testeas los archivos por aparte, JAMAS te enterarás de que es lo que esta pasando cuando no funciona y solo perderás tiempo indagando y adivinando que esta mal, ejecuta el archivo directamente en el navegador y quita la función "header("Content-type: image/jpeg", true);" y ve si arroja algún error el servidor...

Nota: Citar el código no es usar Highlight, al fina es lo mismo que has hecho al principio, al lado del boton "citar" esta la lista desplegable donde dice "Highlight"!!!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 21/02/2013, 09:45
 
Fecha de Ingreso: febrero-2012
Mensajes: 16
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Captcha no se ve la imagen una vez subo al servidor

que quiere decir : ejecuta el archivo directamente en el navegador?
yo aquí : "http://www.aytoquintanar.org/images/captcha.php", lo cambien por la ruta de la carpeta donde esta la imagen, osea mas o menos esto: < img src="sinergia/images/captcha.php" width="100" height="30"> <input name="tmptxt" type="text">

como hago?
agradezco la ayuda,

Etiquetas: captcha, formulario, html, servidor, vez
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 11:50.