Project

General

Profile

« Previous | Next » 

Revision 858

Added by thorn about 16 years ago

Added captcha-reload

View differences:

trunk/CHANGELOG
11 11
! = Update/Change
12 12

  
13 13
------------------------------------- 2.7.1 -------------------------------------
14
18-Sep-2008 Thomas Hornik
15
+ Added captcha-reload
14 16
16-Sep-2008 Thomas Hornik
15 17
# search: fixed windows-related regex issue
16 18
19-Aug-2008 Matthias Gallas
trunk/wb/include/captcha/captchas/ttf_image.php
62 62
// get image-dimensions
63 63
list($width, $height, $type, $attr) = getimagesize($bg);
64 64

  
65
// create image
66
$image = ImageCreateFromPNG($bg); // background image
67
$grey = mt_rand(0,50);
68
$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
69
$ttf = $font;
70
$ttfsize = 25; // fontsize
65
// create reload-image
66
$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_140_40.png'); // reload-overlay
71 67

  
72 68
if(mt_rand(0,2)==0) { // 1 out of 3
73 69

  
74 70
	// draw each character individualy
71
	$image = ImageCreateFromPNG($bg); // background image
72
	$grey = mt_rand(0,50);
73
	$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
74
	$ttf = $font;
75
	$ttfsize = 25; // fontsize
75 76
	$count = 0;
76 77
	$image_failed = true;
77 78
	$angle = mt_rand(-15,15);
......
122 123
	
123 124
}
124 125

  
126
imagealphablending($reload, TRUE);
127
imagesavealpha($reload, TRUE);
128

  
129
// overlay
130
imagecopy($reload, $image, 0,0,0,0, 140,40);
131
imagedestroy($image);
132
$image = $reload;
133

  
125 134
captcha_header();
126 135
ob_start();
127 136
imagepng($image);
trunk/wb/include/captcha/captchas/old_image.php
34 34
srand((double)microtime()*100000);
35 35
$_SESSION['captcha'] = rand(10000,99999);
36 36

  
37
// create reload-image
38
$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_120_30.png'); // reload-overlay
39

  
37 40
$w=120;
38 41
$h=30;
39 42
$image = imagecreate($w, $h);
......
58 61
	imagestring($image, $fnt, $x, $y, substr($_SESSION['captcha'], $i, 1), $darkgray); 
59 62
}
60 63

  
64
imagealphablending($reload, TRUE);
65
imagesavealpha($reload, TRUE);
66

  
67
// overlay
68
imagecopy($reload, $image, 0,0,0,0, 120,30);
69
imagedestroy($image);
70
$image = $reload;
71

  
61 72
captcha_header();
62 73
ob_start();
63 74
imagepng($image);
trunk/wb/include/captcha/captchas/calc_ttf_image.php
71 71
// get image-dimensions
72 72
list($width, $height, $type, $attr) = getimagesize($bg);
73 73

  
74
// create image
75
$image = ImageCreateFromPNG($bg); // background image
76
$grey = mt_rand(0,50);
77
$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
78
$ttf = $font;
79
$ttfsize = 25; // fontsize
74
// create reload-image
75
$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_140_40.png'); // reload-overlay
80 76

  
81 77
if(mt_rand(0,2)==0) { // 1 out of 3
82 78

  
83 79
	// draw each character individualy
80
	$image = ImageCreateFromPNG($bg); // background image
81
	$grey = mt_rand(0,50);
82
	$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
83
	$ttf = $font;
84
	$ttfsize = 25; // fontsize
84 85
	$count = 0;
85 86
	$image_failed = true;
86 87
	$angle = mt_rand(-10,10);
......
111 112
		$image = ImageCreateFromPNG($bg); // background image
112 113
		$grey = mt_rand(0,50);
113 114
		$color = ImageColorAllocate($image, $grey, $grey, $grey); // font-color
115
		$ttf = $font;
116
		$ttfsize = 25; // fontsize
114 117
		$angle = mt_rand(0,5);
115 118
		$x = mt_rand(20,35);
116 119
		$y = mt_rand($height-10,$height-2);
......
129 132
	
130 133
}
131 134

  
135
imagealphablending($reload, TRUE);
136
imagesavealpha($reload, TRUE);
137

  
138
// overlay
139
imagecopy($reload, $image, 0,0,0,0, 140,40);
140
imagedestroy($image);
141
$image = $reload;
142

  
132 143
captcha_header();
133 144
ob_start();
134 145
imagepng($image);
trunk/wb/include/captcha/captchas/calc_image.php
55 55
		break;
56 56
}
57 57

  
58
$image = imagecreate(100, 30);
58
// create reload-image
59
$reload = ImageCreateFromPNG(WB_PATH.'/include/captcha/reload_120_30.png'); // reload-overlay
59 60

  
61
$image = imagecreate(120, 30);
62

  
60 63
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
61 64
$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
62 65
$darkgray = imagecolorallocate($image, 0x30, 0x30, 0x30);
63 66

  
64 67
for($i = 0; $i < 30; $i++) {
65
	$x1 = mt_rand(0,100);
68
	$x1 = mt_rand(0,120);
66 69
	$y1 = mt_rand(0,30);
67
	$x2 = mt_rand(0,100);
70
	$x2 = mt_rand(0,120);
68 71
	$y2 = mt_rand(0,30);
69 72
	imageline($image, $x1, $y1, $x2, $y2 , $gray);  
70 73
}
71 74

  
72
$x = 0;
75
$x = 10;
73 76
$l = strlen($cap);
74 77
for($i = 0; $i < $l; $i++) {
75 78
	$fnt = mt_rand(3,5);
......
78 81
	imagestring($image, $fnt, $x, $y, substr($cap, $i, 1), $darkgray); 
79 82
}
80 83

  
84
imagealphablending($reload, TRUE);
85
imagesavealpha($reload, TRUE);
86

  
87
// overlay
88
imagecopy($reload, $image, 0,0,0,0, 120,30);
89
imagedestroy($image);
90
$image = $reload;
91

  
81 92
captcha_header();
82 93
imagepng($image);
83 94
imagedestroy($image);
trunk/wb/include/captcha/captchas/calc_text.php
26 26
// Must include code to stop this file being accessed directly
27 27
if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
28 28

  
29
if(!file_exists(WB_PATH.'/modules/captcha_control/languages/'.LANGUAGE .'.php')) {
30
	// no module language file exists for the language set by the user, include default module language file EN.php
31
	require_once(WB_PATH.'/modules/captcha_control/languages/EN.php');
32
} else {
33
	// a module language file exists for the language defined by the user, load it
34
	require_once(WB_PATH.'/modules/captcha_control/languages/'.LANGUAGE .'.php');
35
}
36

  
29 37
$_SESSION['captcha'] = '';
30 38
mt_srand((double)microtime()*1000000);
31 39
$n = mt_rand(1,3);
......
50 58
		break;
51 59
}
52 60
echo $cap;
53
?>
61
?>
trunk/wb/include/captcha/captcha.php
23 23

  
24 24
*/
25 25

  
26
// Must include code to stop this file being accessed directly
26
// displays the image or text inside an <iframe>
27
function display_captcha_real($kind='image') {
28
	$t = time();
29
	$_SESSION['captcha_time'] = $t;
30
	if($kind=='image') {
31
		?><a title="reload" href="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=2'; ?>">
32
		  <img style="border: none;" src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
33
			</a><?php
34
	} elseif($kind=='text') {
35
		?><a style="text-decoration:none;" title="reload" href="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=2'; ?>"><?php
36
		include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
37
		?></a><?php
38
	} else {
39
		echo 'error';
40
	}
41
}
42

  
43
// called from an <iframe>
44
if(isset($_GET['display_captcha_X986E21'])) {
45
	require('../../config.php');
46
	switch(CAPTCHA_TYPE) {
47
	case 'text':
48
	case 'calc_text':
49
		display_captcha_real('text');
50
		break;
51
	case 'calc_image':
52
	case 'calc_ttf_image':
53
	case 'ttf_image':
54
	case 'old_image':
55
		display_captcha_real('image');
56
		break;
57
	}
58
	exit(0);
59
}
60

  
61

  
62
// Make sure page cannot be accessed directly
27 63
if(!defined('WB_PATH')) { exit("Cannot access this file directly"); }
28 64

  
29 65
// check if module language file exists for the language set by the user (e.g. DE, EN)
......
78 114
		global $MOD_CAPTCHA;
79 115
		$t = time();
80 116
		$_SESSION['captcha_time'] = $t;
81
		
117

  
118
		// get width and height of captcha image or text for use in <iframe>
119
		switch(CAPTCHA_TYPE) {
120
		case 'text':
121
			$captcha_width = 250;
122
			$captcha_height = 100;
123
			break;
124
		case 'calc_text':
125
			$captcha_width = 120;
126
			$captcha_height = 20;
127
			break;
128
		case 'calc_image':
129
			$captcha_width = 142;
130
			$captcha_height = 30;
131
			break;
132
		case 'calc_ttf_image':
133
			$captcha_width = 162;
134
			$captcha_height = 40;
135
			break;
136
		case 'ttf_image':
137
			$captcha_width = 162;
138
			$captcha_height = 40;
139
			break;
140
		case 'old_image':
141
			$captcha_width = 142;
142
			$captcha_height = 30;
143
			break;
144
		default:
145
			$captcha_width = 250;
146
			$captcha_height = 100;
147
		}
148

  
82 149
		if($action=='all') {
83 150
			switch(CAPTCHA_TYPE) {
84 151
				// one special case
85
				case 'text': // text-captcha
152
				case 'text': // text-captcha - we don't use an <iframe> in this case
86 153
					?><table class="captcha_table"><tr>
87
					<td class="text_captcha"><?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?></td>
154
					<td class="text_captcha">
155
						<?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?>
156
					</td>
157
					<td></td>
88 158
					<td><input type="text" name="captcha" maxlength="50"  style="width:150px;" /></td>
89 159
					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_QUEST']; ?></td>
90 160
					</tr></table><?php
......
92 162
				// two special cases
93 163
				case 'calc_text': // calculation as text
94 164
					?><table class="captcha_table"><tr>
95
					<td class="text_captcha"><?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?>&nbsp;=&nbsp;</td>
165
					<td class="text_captcha">
166
						<iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>">
167
						<?php include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php'); ?>
168
						</iframe>
169
					</td>
170
					<td>&nbsp;=&nbsp;</td>
96 171
					<td><input type="text" name="captcha" maxlength="10"  style="width:20px;" /></td>
97 172
					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_RES']; ?></td>
98 173
					</tr></table><?php
99 174
					break;
100 175
				case 'calc_image': // calculation with image (old captcha)
101 176
				case 'calc_ttf_image': // calculation with varying background and ttf-font
102
					?><table class="captcha_table"><tr>
103
					<td class="image_captcha"><img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" /></td><td>&nbsp;=&nbsp;</td>
177
				  ?><table class="captcha_table"><tr>
178
					<td class="image_captcha">
179
						<iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>">
180
						<img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
181
						</iframe>
182
					</td>
183
					<td>&nbsp;=&nbsp;</td>
104 184
					<td><input type="text" name="captcha" maxlength="10" style="width:20px;" /></td>
105 185
					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_RES']; ?></td>
106 186
					</tr></table><?php
......
109 189
				case 'ttf_image': // captcha with varying background and ttf-font
110 190
				case 'old_image': // old captcha
111 191
					?><table class="captcha_table"><tr>
112
					<td class="image_captcha"><img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" /></td>
192
					<td class="image_captcha">
193
						<iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>">
194
						<img src="<?php echo WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t"; ?>" alt="Captcha" />
195
						</iframe>
196
					</td>
197
					<td></td>
113 198
					<td><input type="text" name="captcha" maxlength="10" style="width:50px;" /></td>
114 199
					<td class="captcha_expl"><?php echo $MOD_CAPTCHA['VERIFICATION_INFO_TEXT']; ?></td>
115 200
					</tr></table><?php
......
130 215
					echo "<img $style src=\"".WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t\" />";
131 216
					break;
132 217
			}
218
		} elseif($action=='image_iframe') {
219
			switch(CAPTCHA_TYPE) {
220
				case 'text': // text-captcha
221
					echo ($style?"<span $style>":'');
222
					include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
223
					echo ($style?'</span>':'');
224
					break;
225
				case 'calc_text': // calculation as text
226
					?><iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>"><?php
227
					include(WB_PATH.'/include/captcha/captchas/'.CAPTCHA_TYPE.'.php');
228
					?></iframe><?php
229
					break;
230
				case 'calc_image': // calculation with image (old captcha)
231
				case 'calc_ttf_image': // calculation with varying background and ttf-font
232
				case 'ttf_image': // captcha with varying background and ttf-font
233
				case 'old_image': // old captcha
234
					?><iframe class="captcha_iframe" width="<?php echo $captcha_width; ?>" height="<?php echo $captcha_height; ?>" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" name="captcha_iframe" src="<?php echo WB_URL.'/include/captcha/captcha.php?display_captcha_X986E21=1'; ?>"><?php
235
					echo "<img $style alt=\"Captcha\" src=\"".WB_URL.'/include/captcha/captchas/'.CAPTCHA_TYPE.".php?t=$t\" />";
236
					?></iframe><?php
237
					break;
238
			}
133 239
		} elseif($action=='input') {
134 240
			switch(CAPTCHA_TYPE) {
135 241
				case 'text': // text-captcha
......
165 271
		}
166 272
	}
167 273
}
168
?>
274

  

Also available in: Unified diff