Вход Регистрация
Файл: captcha.php
Строк: 100
<?php
include_once 'sys/inc/start.php';
include_once 
'sys/inc/sess.php';
include_once 
'sys/inc/home.php';
// Set the header
header("Content-type: image/png");

$text mt_rand(1000099999);
// Explode the letters into separate array elements
$letters str_split($text);

// Store the generated code into the _SESSION captcha
$_SESSION['captcha'] = $text;

// Define the Image Height & Width
$width 100;
$height 40;

// Create the Image
$image imagecreate($width$height);

// Set the background color
$black imagecolorallocate($image255255255);
// Set the text color
$white imagecolorallocate($image000);

$lg_color mt_rand(130160);
$light_gray imagecolorallocate($image$lg_color$lg_color$lg_color);

// Set the font size
$font_size 1;

// Draw background circles
for ($i 0$i 1$i++) {
    
// The outside circle diameter
    
$outside 60 $i 20;

    
// The inside circle diamater
    
$inside 59 $i 20;

    
// Randomize the horizontal position and vertical position
    
$oc = array(mt_rand(3040), mt_rand(1020));

    
// Draw the outer circle
    
imagefilledellipse($image$oc[0], $oc[1], $outside$outside$white);

    
// Draw the inner circle
    
imagefilledellipse($image$oc[0], $oc[1], $inside$inside$black);
}

// Generate noise
for ($noise 0$noise <= 15$noise++) {
    
$x mt_rand(10$width 10);
    
$y mt_rand(10$height 10);
    
imageline($image$x$y$x$y$white);
}

function 
generateStars($image$color$repeat_x$repeat_y)
{
    
$ry mt_rand(36);
    
$one_y $ry 2;
    
$two_y $ry 1;
    
$three_y $ry;
    for (
$x 1$x <= $repeat_y$x++) {
        
$one_x $ry 2;
        
$two_x $ry 1;
        
$three_x $ry;
        
// Generate horizontal lines
        
for ($n 1$n <= $repeat_x$n++) {
            
imageline($image$one_x$one_y$one_x$one_y$color);
            
imageline($image$three_x$three_y$three_x$three_y$color);
            
imageline($image$three_x$one_y$three_x$one_y$color);
            
imageline($image$one_x$three_y$one_x$three_y$color);
            
imageline($image$two_x$two_y$two_x$two_y$color);
            
$one_x $one_x 8;
            
$two_x $two_x 8;
            
$three_x $three_x 8;
        }
        
$one_y $one_y 8;
        
$two_y $two_y 8;
        
$three_y $three_y 8;
    }
}

generateStars($image$light_gray155);

// Letter position
$position = array(152535455565);

for (
$m $i 0$i count($letters); $i++) {
    
// Generate an rgb random value, from light gray to white
    
$color rand(0150);

    
// Output the letters
    
imagettftext($image200$position[$i] + $mmt_rand(($height 2), ($height 2) + 15), imagecolorallocate($image$color$color$color), 'sys/fonts/arial.ttf'$letters[$i]);
    
$m += 5;
}

// Generate random vertical and horizontal lines
imageline($image0mt_rand(10$height 10), $widthmt_rand(10$height 10), $light_gray);
imageline($imagemt_rand(15$width 15), 00mt_rand(15$width 15), $light_gray);

// Output the $image, don't save the file name, set quality
imagepng($imagenull0);
Онлайн: 2
Реклама