[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