Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    immagine captcha non si vede

    ciao ragai! sto usando un free script form mail con richiesta inserimento codice di autenticazione.
    localmente ho inserito tutto adeguatamente e funziona! adesso che il sito e' online, l'immagine non si vede!
    cosa potrebbe essere?
    vi allego il codice, grai in anticipo.


    <div...........><?php include("contactform.php"); ?></div>

    questo e' per includere nella mia pagina lo script



    e adesso il codice che mi dovrebbe creare l'immagine:

    <?PHP



    class FGCaptchaCreator extends FG_CaptchaHandler
    {
    var $image;
    var $width;
    var $height;
    var $margin_y;
    var $charset;
    var $nChars;
    var $linecolor;
    var $code;
    var $show_captcha_var;
    var $nlines;
    var $enc_key;
    var $captcha_var_name;

    function FGCaptchaCreator($captcha_var_name)
    {
    $this->width = 150;
    $this->height= 60;
    $this->charset="2356789ABCDEFGHJKLMNPQRSTUVWXYZ";
    $this->nChars=6;
    $this->margin_y = 10;

    $this->nlines = 2;
    $this->font_file = './include/SFOldRepublicSCBold.ttf';
    ( io credo che il problema sia qui'...nella stringa soprastante,ma non so' come risolverlo, ho fato varie prove. include e' il nome della cartella che contiene SFOldRepublicSCBold.ttf che sarebbe lo stile delle lettere e numeri, credo che sia un problema di percorso relativo)




    $this->enc_key="GhsnR5^Hyhsfg";
    $this->captcha_var_name = $captcha_var_name;
    }

    function Validate()
    {
    return $this->ValidateCaptcha($_POST[$this->captcha_var_name]);
    }

    function GetError()
    {
    return 'The code does not match. Please enter the code in the image';
    }


    function SetFontFile($font_file)
    {
    $this->font_file = $font_file;
    }

    function SetNLines($nlines)
    {
    $this->nlines = $nlines;
    }

    function SetSize($width,$height)
    {
    $this->width = $width;
    $this->height= $height;
    }

    function SetCharset($charset)
    {
    $this->charset= $charset;
    }

    function SetNChars($nChars)
    {
    $this->nChars = $nChars;
    }

    function SetEncKey($key)
    {
    $this->enc_key= $key;
    }

    function getSessionVarName()
    {
    $rand = md5('Hgsgst'.$this->GetEncKey());
    return $rand;
    }

    function DisplayCaptcha()
    {
    $this->Create();
    $session_var = $this->getSessionVarName();
    $_SESSION[$session_var] = $this->getCaptchaPwd($this->code);

    $this->ShowCaptcha();
    }

    function getCaptchaPwd($code)
    {
    $code = trim($code);

    $upd_code = strtoupper($code).$this->GetEncKey();

    return md5($upd_code);
    }

    function Create()
    {
    $this->image = imagecreate($this->width, $this->height);
    imagecolorallocate($this->image, 255, 255, 255);

    $this->code = $this->CreateCode();
    return true;
    }

    function ShowCaptcha()
    {
    $this->DrawChars($this->code);
    $this->DrawLines();
    $this->image = $this->Blur($this->image);
    $this->image = $this->Distort($this->image);
    $this->SendImage();
    }

    function ValidateCaptcha($userscode)
    {
    $enc_user_answer = $this->getCaptchaPwd($userscode);
    $session_var = $this->getSessionVarName();
    if($_SESSION[$session_var] == $enc_user_answer)
    {
    return true;
    }
    return false;
    }

    function CreateCode()
    {
    $code = "";
    for($c=0;$c<$this->nChars;$c++)
    {
    $rnum = rand(0,strlen($this->charset)-1);
    $code .= mb_substr($this->charset, $rnum, 1,'UTF-8');
    }
    return $code;
    }

    function DrawLines()
    {
    $width = imagesx($this->image);
    $height = imagesy($this->image);
    $linecolor = imagecolorallocate($this->image,
    $this->linecolor, $this->linecolor, $this->linecolor);
    for($i=0;$i < $this->nlines;$i++)
    {
    $y1=rand(5,$height-5);
    $y2=rand(5,$height-5);
    imageline($this->image,0,$y1,$width,$y2,$linecolor );
    }
    }

    function calculateTextBox($font_size, $font_angle, $font_file, $text)
    {
    $box = imagettfbbox($font_size, $font_angle, $font_file, $text);

    $min_x = min(array($box[0], $box[2], $box[4], $box[6]));
    $max_x = max(array($box[0], $box[2], $box[4], $box[6]));
    $min_y = min(array($box[1], $box[3], $box[5], $box[7]));
    $max_y = max(array($box[1], $box[3], $box[5], $box[7]));

    return array(
    'left' => ($min_x >= -1) ? -abs($min_x + 1) : abs($min_x + 2),
    'top' => abs($min_y),
    'width' => $max_x - $min_x,
    'height' => $max_y - $min_y,
    'box' => $box
    );
    }

    function DrawChars($code)
    {
    $spacing = (int)($this->width / $this->nChars);
    $fontidx=0;

    $N=strlen($code);
    for ($i = 0; $i < $N; $i++)
    {
    $font_size = 25;
    $angle = rand(-30,30);

    $tbox = $this->calculateTextBox($font_size,$angle,$this->font_file,mb_substr($code, $i, 1,'UTF-8'));

    $left = $tbox['left'];
    $top = $tbox['top'];
    $charwidth = $tbox['width'];

    $charheight = $tbox['height']+rand(0,10);


    $image_char = imagecreate($charwidth,$charheight);
    $bg = imagecolorallocate($image_char, 255, 255, 255);
    ImageColorTransparent($image_char,$bg);

    $coloridx = rand(0, 30);
    $textcolor = imagecolorallocate($image_char, $coloridx, $coloridx, $coloridx);

    if($i==$N/2)
    {
    $this->linecolor=$coloridx;
    }

    $x = $left < 0? abs($left):0;
    if(!imagettftext($image_char, $font_size, $angle, $left, $top,
    $textcolor, $this->font_file , mb_substr($code, $i, 1,'UTF-8')))
    {
    $this->logger->LogError("imagettftext failed");
    }

    $dispwidth = $spacing - 3;
    $y = ($this->margin_y/2);
    $dispheight = $this->height - $y;

    imagecopyresampled($this->image, $image_char, $i*$spacing, $y, 0, 0,
    $dispwidth, $dispheight, $charwidth, $charheight);
    }
    }

    function Blur($im)
    {
    $width = imagesx($im);
    $height = imagesy($im);

    $imgTmp = ImageCreateTrueColor($width,$height);
    $bg = ImageColorAllocate($imgTmp,255,255,255);
    ImageColorTransparent($imgTmp,$bg);
    ImageFill($imgTmp,0,0,$bg);
    $d = 1;

    ImageCopyMerge($imgTmp, $im, 0, 0, 0, $d, $width, $height-$d, 70);
    ImageCopyMerge($im, $imgTmp, 0, 0, $d, 0, $width-$d, $height, 70);
    ImageCopyMerge($imgTmp, $im, 0, $d, 0, 0, $width, $height, 70);
    ImageCopyMerge($im, $imgTmp, $d, 0, 0, 0, $width, $height, 70);

    ImageDestroy($imgTmp);

    return $im;
    }

    function Distort($im)
    {
    $width = imagesx($im);
    $height = imagesy($im);

    $image_out = ImageCreateTrueColor($width,$height);
    $bg = ImageColorAllocate($image_out,255,255,255);
    ImageFill($image_out,0,0,$bg);


    for($x=0;$x < $width;$x++)
    {
    $peak=$width/4;
    $y = $this->margin_y;

    $d = $y * sin(((double)$x)/$peak);

    imagecopyresampled($image_out, $im, $x, $d, $x, 0,
    1, $height-$d, 1, $height);
    }//for
    return $image_out;
    }

    function SendImage()
    {
    header('Content-type: image/png');

    imagepng($this->image);
    }

    function GetEncKey()
    {
    return $this->enc_key.$_SERVER['SERVER_NAME'].$_SERVER['REMOTE_ADDR'];
    }
    }

    ?>




    grazie per esserci sempre!!!!

  2. #2
    se pensi sia quello prova a mettere il font nella cartella principale , cambia la riga e vedi cosa succede

    $this->font_file = 'SFOldRepublicSCBold.ttf';
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  3. #3

    niente da fare

    ho porvato ma mi da' errore, non mi fa' vedere la pagina. ma secondo voi se do' un percorso assoluto??

    se faccio cosi'??

    'D:/Inetpub/webs/miosito/mail/include/SFOldRepublicSCBold.ttf'

    .....solo che ho provato..ma niente...forse sbaglio a scrivere il percorso assoluto!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.