Does that mean you could always use the same code, because it'd match; even if the image changes?
Code: Select all
<?php
function assign_rand_value($num)
{
// accepts 1 - 36
switch ($num) {
case "1":
$rand_value = "a";
break;
case "2":
$rand_value = "b";
break;
case "3":
$rand_value = "c";
break;
case "4":
$rand_value = "d";
break;
case "5":
$rand_value = "e";
break;
case "6":
$rand_value = "f";
break;
case "7":
$rand_value = "g";
break;
case "8":
$rand_value = "h";
break;
case "9":
$rand_value = "i";
break;
case "10":
$rand_value = "j";
break;
case "11":
$rand_value = "k";
break;
case "12":
$rand_value = "l";
break;
case "13":
$rand_value = "m";
break;
case "14":
$rand_value = "n";
break;
case "15":
$rand_value = "o";
break;
case "16":
$rand_value = "p";
break;
case "17":
$rand_value = "q";
break;
case "18":
$rand_value = "r";
break;
case "19":
$rand_value = "s";
break;
case "20":
$rand_value = "t";
break;
case "21":
$rand_value = "u";
break;
case "22":
$rand_value = "v";
break;
case "23":
$rand_value = "w";
break;
case "24":
$rand_value = "x";
break;
case "25":
$rand_value = "y";
break;
case "26":
$rand_value = "z";
break;
case "27":
$rand_value = "0";
break;
case "28":
$rand_value = "1";
break;
case "29":
$rand_value = "2";
break;
case "30":
$rand_value = "3";
break;
case "31":
$rand_value = "4";
break;
case "32":
$rand_value = "5";
break;
case "33":
$rand_value = "6";
break;
case "34":
$rand_value = "7";
break;
case "35":
$rand_value = "8";
break;
case "36":
$rand_value = "9";
break;
}
return $rand_value;
}
function get_rand_id($length)
{
if ($length > 0) {
$rand_id = "";
for ($i = 1; $i <= $length; $i++) {
mt_srand((double)microtime() * 1000000);
$num = mt_rand(1, 36);
$rand_id .= assign_rand_value($num);
}
}
return $rand_id;
}
$code = get_rand_id(6);
$_SESSION['code'] = $code;
$width = 300;
$height = 100;
$image = imagecreatetruecolor(300, 100);
$grey = imagecolorallocate($image, 180, 180, 180);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 200, 0, 0);
$noise = imagecolorallocate($image, 0, 0, 0);
$color = imagecolorallocate($image, rand(0, 255), mt_rand(0, 100), mt_rand(100, 200));
$color2 = imagecolorallocate($image, rand(0, 255), mt_rand(0, 100), rand(100,
200));
$color3 = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 100), mt_rand(100,
200));
$color4 = imagecolorallocate($image, rand(0, 255), mt_rand(0, 100), rand(0,
200));
Imagefill($image, 0, 0, $grey);
imagesetthickness($image, 2);
for ($i = 0; $i < 800; $i++) {
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $color);
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $color2);
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $noise);
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $color);
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $color3);
imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width),
mt_rand(0, $height), $noise);
imageellipse($image, $width / 2, $height / 2, $width, $height, $color4);
}
imagettftext($image, 50, 10, 79, 78, $grey, "Font-On-A-Stick.ttf", $code);
imagettftext($image, 50, 10, 82, 81, $black,
"Font-On-A-Stick.ttf", $code);
imagettftext($image, 50, 10, 85, 84, $grey, "Font-On-A-Stick.ttf", $code);
imagettftext($image, 50, 10, 88, 87, $black,
"Font-On-A-Stick.ttf", $code);
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>