Location: PHPKode > projects > PBBoard > PBBoard_v2.1.4/Upload/includes/captcha.php
<?php

// ##############################################################################||
// #
// #   PowerBB Version 2.0.0
// #   http://www.PBBoard.com
// #   Copyright (c) 2009 by Abu.Rakan
// #
// #   filename : attachments.module.php
// #   download and show attachment files
// #
// ##############################################################################||

		//Start the session so we can store what the code actually is.
		session_start();

		//Now lets use md5 to generate a totally random string
		$md5 = md5(microtime() * mktime());

		/*
		We dont need a 32 character long string so we trim it down to 5
		*/
		$string = substr($md5,0,5);

		/*
		Now for the GD stuff, for ease of use lets create
		 the image from a background image.
		*/

		$captcha = imagecreatefrompng("../look/images/captcha.png");


		/*
		 Hxdec_arr : Transform hexcolor to 255 format.
		 @color : color format without '#' .
		 @return Array
		*/
		function Hxdec_arr($color){
		$int = hexdec($color);
		$arr = array("red" => 0xFF & ($int >> 0x10),
		             "green" => 0xFF & ($int >> 0x8),
		             "blue" => 0xFF & $int);
		return $arr;
		}


		/*
		Lets set the colours, the colour $line is used to generate lines.
		 Using a blue misty colours. The colour codes are in RGB
		*/



		$black = imagecolorallocate($captcha, 0, 0, 0);

		$c1 = Hxdec_arr('000000');
		$c2 = Hxdec_arr('000000');

		$line = imagecolorallocate($captcha,$c1["red"],$c1["green"],$c1["blue"]);
		$line2 = imagecolorallocate($captcha,$c2["red"],$c2["green"],$c2["blue"]);

		/*
		Now to make it a little bit harder for any bots to break,
		assuming they can break it so far. Lets add some lines
		in (static lines) to attempt to make the bots life a little harder
		*/
		imageline($captcha,0,0,39,29,$line);
		imageline($captcha,-100,57,34,8,$line2);
		imageline($captcha,0,0,39,29,$line);
		imageline($captcha,40,0,64,29,$line2);
		imageline($captcha,8,30,4,20,$line2);

		/*
		Now for the all important writing of the randomly generated string to the image.
		*/
		imagestring($captcha,5, 20, 1, $string, $black);


		/*
		Encrypt and store the key inside of a session
		*/

		$_SESSION['key'] = md5($string);

		/*
		Output the image
		*/
		header("Content-type: image/png");
		imagepng($captcha);


?>
Return current item: PBBoard