[Linux-Biella] funzione generazione capcha

.: Federico Villa (Villinux) villinux a gmail.com
Mar 21 Apr 2015 23:13:57 CEST


hola!

Qualcuno mi aiuta a individuare il problema in queste righe di codice
php che servono per generare il capcha per il form contatti del nostro
sito?

<?
/*
* CAPTCHA SYSTEM
* CREATO DA REMOTES
* SITO: http://www.remotes.it
* EMAIL: webmaster a remotes.it
*
* QUESTO SCRIPT E' SCRITTO IN PHP E NECESSITA DELLE LIBRERIE GD
*
* PER VISUALIZZARE L'IMMAGINE USATE IL TAG HTML:
* <img src="cap_mail.php">
*
* IL NUMERO CORRETTO PER ESEGUIRE IL CONFRONTO SI TROVA NELLA VARIABILE:
* $_SESSION['cap_mail']
*/


// AVVIA LA SESSIONE
session_start();

// GENERA 5 CIFRE A RANDOM

do{

    $cap1 = rand("1","9");
    $cap2 = rand("1","9");
    $cap3 = "=";
    $cap4 = rand("0","2");

}while($cap4==1 and $cap2>=$cap1);

switch ($cap4)
{
    case 0:{
            $operat="+";
            $operaz= $cap1+$cap2;
        }
    break;
    case 1:{
            $operat="-";
            $operaz= $cap1-$cap2;
        }
    break;
    case 2:{
            $operat="*";
            $operaz= $cap1*$cap2;
        }
    break;
}


// COMPONE IL NUMERO E LO SALVA IN UNA SESSIONE
unset( $_SESSION['cap_mail'] );
$_SESSION['cap_mail'] = $operaz;

// AVVIA l'ISTANZA PER LA CREAZIONE DELL'IMMAGINE
$immagine = imageCreate(88, 36);

// DEFINISCE I COLORI CHE UTILIZZEREMO NELL'IMMAGINE
// (IL PRIMO COLORE INSERITO DIVIENE AUTOMATICAMENTE LO SFONDO)
$arancio = imageColorAllocate($immagine, 255, 136, 0);
$blu = imageColorAllocate($immagine, 0, 0, 255);

// GENERA A RANDOM UN NUMERO DI PUNTI (COMPRESO TRA 50 E 100)
$ndot = rand("50","100");

// CICLO PER L'INSERIMENTO DEI PUNTI
$zdot = 1;
while ($zdot <= $ndot) {
    $dotx = rand("2","86");
    $doty = rand("2","34");
    imageline($immagine, $dotx, $doty, $dotx, $doty, $blu);
    $zdot++;
}

// SCRIVE LE CIFRE INSERENDOLE CON UNA X FISSA E UNA Y VARIABILE
imageString($immagine, 5, 15, rand("5","15"), $cap1, $blu);
imageString($immagine, 5, 30, rand("5","15"), $operat, $blu);
imageString($immagine, 5, 45, rand("5","15"), $cap2, $blu);
imageString($immagine, 5, 60, rand("5","15"), $cap3, $blu);
//imageString($immagine, 5, 75, rand("5","15"), $_SESSION['cap_mail'], $blu);

//imageString($immagine, 5, 70, rand("5","15"), $cap5, $blu);

// DEFINISCE IL MIME-TYPE DELL'IMMAGINE (IN QUESTO CASO COME IMMAGINE PNG)
header("Content-type: image/png");

// CREA L'IMMAGINE PNG
imagepng($immagine);

// LIBERA LA MEMORIA
imageDestroy($immagine);

exit();
?>


Maggiori informazioni sulla lista Linux