No muestra imagen del captcha

  • Autor Autor techrider
  • Fecha de inicio Fecha de inicio
T

techrider

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola amigos desde hace unos dias en mi web no me muestra la imagen del captcha parece que esta todo bien así que no consigo encontrar el problema. ¿alguna idea?

<?php
session_start();

class CaptchaSecurityImages {

var $font = 'monofont.ttf';

public function generateCode($characters) {
/* list all possible characters, similar looking characters and vowels have been removed */
$possible = '23456789bcdfghjkmnpqrstvwxyz';
$code = '';
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}

public function CaptchaSecurityImages($width='120',$height='40',$characters='5') {

$code = $this->generateCode($characters);
/* font size will be 75% of the image height */
$font_size = $height * 0.75;
$image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream');
/* set the colours */
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 20, 40, 100);
$noise_color = imagecolorallocate($image, 100, 120, 180);
/* generate random dots in background */
for( $i=0; $i<($width*$height)/3; $i++ ) {
imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
}
/* generate random lines in background */
for( $i=0; $i<($width*$height)/150; $i++ ) {
imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
}
/* create textbox and add text */
$textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function');
$x = ($width - $textbox[4])/2;
$y = ($height - $textbox[5])/2;
imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
/* output captcha image to browser */
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
unset($_SESSION['security_code'])
}

}

$width = isset($_GET['width']) ? $_GET['width'] : '120';
$height = isset($_GET['height']) ? $_GET['height'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '6';


$captcha = new CaptchaSecurityImages($width,$height,$characters);

?>
 
que error te da?, solamente no se visualiza?.
si envias el formulario te lo acepta igualmente?.
Una recomendacion, usa Recaptcha de google, facil de usar, de implementar y funciona perfectamente

Saludos HomeGuard
 
No me envía el formulario, yo entiendo que al no mostrarse la imagen nadie puede rellenar ese campo por lo que no se envía.

Me sale una imagen como si estuviera corrupta en el espacio del captcha.
 
en esta linea

PHP:
$image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream');

sacale el @ para que muestre que error da

PHP:
$image = imagecreate($width, $height) or die('Cannot initialize new GD image stream');

y ponelo aca asi vemos que esta fallando

Saludos HomeGuard
 
la palabra reservada "var" esta en obsoleta a partir de PHP 5.3( var is de-deprecated ) cambialo por "public"
 
Atrás
Arriba