Project

General

Profile

1 596 thorn
<?php
2
3
// $Id$
4
5
/*
6
7
 Website Baker Project <http://www.websitebaker.org/>
8 915 Ruebenwurz
 Copyright (C) 2004-2009, Ryan Djurovich
9 596 thorn
10
 Website Baker is free software; you can redistribute it and/or modify
11
 it under the terms of the GNU General Public License as published by
12
 the Free Software Foundation; either version 2 of the License, or
13
 (at your option) any later version.
14
15
 Website Baker is distributed in the hope that it will be useful,
16
 but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 GNU General Public License for more details.
19
20
 You should have received a copy of the GNU General Public License
21
 along with Website Baker; if not, write to the Free Software
22
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23
24
*/
25
26
require_once("../../../config.php");
27
require_once(WB_PATH.'/include/captcha/captcha.php');
28
29 609 thorn
if(!isset($_SESSION['captcha_time']))
30
	exit;
31 1371 Luisehahne
//unset($_SESSION['captcha_time']);
32 609 thorn
33 596 thorn
// Captcha
34 1371 Luisehahne
$sec_id = '';
35
if(isset($_GET['s'])) $sec_id = $_GET['s'];
36
$_SESSION['captcha'.$sec_id] = '';
37 615 thorn
mt_srand((double)microtime()*1000000);
38 596 thorn
$n = mt_rand(1,3);
39
switch ($n) {
40
	case 1:
41
		$x = mt_rand(1,9);
42
		$y = mt_rand(1,9);
43 1371 Luisehahne
		$_SESSION['captcha'.$sec_id] = $x + $y;
44 596 thorn
		$cap = "$x+$y";
45
		break;
46
	case 2:
47
		$x = mt_rand(10,20);
48
		$y = mt_rand(1,9);
49 1371 Luisehahne
		$_SESSION['captcha'.$sec_id] = $x - $y;
50 596 thorn
		$cap = "$x-$y";
51
		break;
52
	case 3:
53
		$x = mt_rand(2,10);
54
		$y = mt_rand(2,5);
55 1371 Luisehahne
		$_SESSION['captcha'.$sec_id] = $x * $y;
56 596 thorn
		$cap = "$x*$y";
57
		break;
58
}
59
60 858 thorn
// create reload-image
61
$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_120_30.png'); // reload-overlay
62 596 thorn
63 858 thorn
$image = imagecreate(120, 30);
64
65 596 thorn
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
66
$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
67
$darkgray = imagecolorallocate($image, 0x30, 0x30, 0x30);
68
69
for($i = 0; $i < 30; $i++) {
70 858 thorn
	$x1 = mt_rand(0,120);
71 848 thorn
	$y1 = mt_rand(0,30);
72 858 thorn
	$x2 = mt_rand(0,120);
73 848 thorn
	$y2 = mt_rand(0,30);
74 596 thorn
	imageline($image, $x1, $y1, $x2, $y2 , $gray);
75
}
76
77 858 thorn
$x = 10;
78 596 thorn
$l = strlen($cap);
79
for($i = 0; $i < $l; $i++) {
80 848 thorn
	$fnt = mt_rand(3,5);
81
	$x = $x + mt_rand(12 , 20);
82
	$y = mt_rand(7 , 12);
83 596 thorn
	imagestring($image, $fnt, $x, $y, substr($cap, $i, 1), $darkgray);
84
}
85
86 858 thorn
imagealphablending($reload, TRUE);
87
imagesavealpha($reload, TRUE);
88
89
// overlay
90
imagecopy($reload, $image, 0,0,0,0, 120,30);
91
imagedestroy($image);
92
$image = $reload;
93
94 596 thorn
captcha_header();
95
imagepng($image);
96
imagedestroy($image);
97
98
?>