Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problemi captcha

  1. #1

    Problemi captcha

    Salve,

    Mi trovo davanti un problema incomprensibile, ho uno script per creare un captcha perfettamente funzionante se si trova sulla root del sito, ma non se lo metto in una cartella del sito.

    Questo è lo script per generare il captcha:
    Codice PHP:
    function random_string($len)
    {
       $string = "";
       $chars = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                   "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
                   "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
                   "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
                   "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
                   "3", "4", "5", "6", "7", "8", "9");
       for($i = 0; $i < $len; ++$i)
       {
          shuffle($chars);
          $string .= $chars[0];
       }
       
       return $string;
    }


    header("Content-type: image/png");
    //header(”Content-type: image/png”);

    $x = 200;
    $y = 75;
    $code = random_string(6);//substr($_GET['code'],0,9);
    $space = $x / (strlen($code)+1);// Calcoliamo lo spazio che deve esserci tra un carattere e il successivo

    $img = imagecreatetruecolor($x,$y);

    $bg = imagecolorallocate($img,0,0,0);
    $border = imagecolorallocate($img,0,0,0);
    $colors[] = imagecolorallocate($img,128,64,192);
    $colors[] = imagecolorallocate($img,216,147,54);
    $colors[] = imagecolorallocate($img,108,192,64);

    imagefilledrectangle($img,1,1,$x-2,$y-2,$bg);
    imagerectangle($img,0,0,$x-1,$y-2,$border);

    for ($i=0; $i< strlen($code); $i++)
    {
    $color = $colors[$i % count($colors)];
    imagettftext($img,28+rand(0,8),-20+rand(0,40),($i+0.3)*$space,50+rand(0,10),$color,'xxx.otf',$code{$i});
    }

    for($i=0;$i<280;$i++)
    {
    $x1 = rand(3,$x-3);
    $y1 = rand(3,$y-3);
    $x2 = $x1-2-rand(0,8);
    $y2 = $y1-2-rand(0,8);
    imageline($img,$x1,$y1,$x2,$y2,$colors[rand(0,count($colors)-1)]);
    }

    ?>
    <?php imagepng($img); ?>
    Poi il file che dovrebbe farlo vedere:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Untitled Document</title>
    </
    head>

    <
    body>
    [
    img]1.php[/img]
    </
    body>
    </
    html
    Se li sposto entrambe dalla root del sito in una delle cartelle del sito non funzionano più!!!

    Qualcuno mi sa spiegare perché?

  2. #2
    Io utilizzo questo captcha

    Codice PHP:
    header("Content-type: image/jpeg");
    $time microtime();
    $randomstr md5("$magicword $time");
    $risultato substr($randomstr,2,5);
    $newimage =imagecreatefromjpeg("img.jpg");
    $textcolor imagecolorallocate($newimage000);
    imagestring($newimage5174$risultato$textcolor);
    imagejpeg($newimage); 
    salvando la variabile $risultato in un DB e mi funziona ovunque lo metto...

  3. #3
    Grazie della risposta

    mi hai dato un indizio, perché a me il tuo codice genera una serie di errori:

    Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\creazione-web\siti-esempio\casaolmata\prenotazioni_xx.php:1) in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\siti-esempio\prenotazioni_xx.php on line 517

    Warning: imagecreatefromjpeg(img.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\siti-esempio\prenotazioni_xx.php on line 521

    Warning: imagecolorallocate(): supplied argument is not a valid Image resource in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\siti-esempio\prenotazioni_xx.php on line 522

    Warning: imagestring(): supplied argument is not a valid Image resource in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\siti-esempio\prenotazioni_xx.php on line 523

    Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\siti-esempio\prenotazioni_xx.php on line 524Insert the control code written in this image:

  4. #4
    Ma sei in locale??

    Sicuro di avere installato le librerie GD? Di default misà che non ci sono..

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.