]> git.p6c8.net - form-email.git/blob - form-email/captcha.php
Form E-Mail 3.4.1 hinzugefuegt
[form-email.git] / form-email / captcha.php
1 <?php
2
3 #
4 # Form E-Mail 3.4.1 - captcha.php
5 #
6 # Generieren eines Captcha-Bilds
7 #
8 # Autor: Patrick Canterino <patrick@patshaping.de>
9 # Letzte Aenderung: 11.1.2009
10 #
11 # Copyright (C) 2002-2011 Patrick Canterino
12 #
13 # Diese Datei kann unter den Bedingungen der "Artistic License 1.0"
14 # weitergegeben und / oder veraendert werden.
15 # Siehe:
16 # http://www.opensource.org/licenses/artistic-license-1.0.php
17 #
18
19 require('config.php');
20 require('functions.php');
21 require('class.Template.php');
22
23 if($captcha_enable)
24 {
25 session_start();
26
27 if($captcha_max && isset($_SESSION['captcha_failed']) && $_SESSION['captcha_failed'] >= $captcha_max)
28 {
29 show_fatal($err_captcha_max);
30 }
31 else
32 {
33 unset($_SESSION['captcha']);
34
35 # Zufaellige Zeichenkette erzeugen
36
37 $captcha_string = '';
38
39 $x = 0;
40 srand();
41
42 while($x<$captcha_length)
43 {
44 $rand = rand(0,strlen($captcha_possible)-1);
45 $captcha_string .= $captcha_possible[$rand];
46
47 $x++;
48 }
49
50 $_SESSION['captcha'] = $captcha_string;
51
52 # Ein Bild mit dem generierten Text erzeugen
53
54 if($captcha_image_bg && file_exists($captcha_image_bg))
55 {
56 # Es wurde ein Hintergrundbild angegeben
57
58 $captcha_img = imagecreatefrompng($captcha_image_bg);
59
60 $image_size = getimagesize($captcha_image_bg);
61 $captcha_width = $image_size[0];
62 $captcha_height = $image_size[1];
63 }
64 else
65 {
66 # Es wurde kein Hintergrundbild angegeben
67
68 $captcha_img = imagecreate($captcha_width,$captcha_height);
69 }
70
71 $white = imagecolorallocate($captcha_img,$captcha_color_bg[0],$captcha_color_bg[1],$captcha_color_bg[2]);
72 $black = imagecolorallocate($captcha_img,$captcha_color_text[0],$captcha_color_text[1],$captcha_color_text[2]);
73
74 $angle = rand($captcha_angle[0],$captcha_angle[1]);
75 $t_x = rand($captcha_x[0],$captcha_y[1]);
76 $t_y = rand($captcha_y[0],$captcha_y[1]);
77
78 imagettftext($captcha_img,$captcha_font_size,$angle,$t_x,$t_y,$black,$captcha_font,$captcha_string);
79
80 # Zufaellige Linien einfuegen
81
82 $y = 0;
83
84 while($y<$captcha_lines)
85 {
86 $begin_x = rand(0,$captcha_width);
87 $begin_y = rand(0,$captcha_height);
88 $end_x = rand(0,$captcha_width);
89 $end_y = rand(0,$captcha_height);
90
91 imageline($captcha_img,$begin_x,$begin_y,$end_x,$end_y,$black);
92
93 $y++;
94 }
95
96 # Bild ausgeben
97
98 header('Content-type: image/png');
99 imagepng($captcha_img);
100
101 imagedestroy($captcha_img);
102 }
103 }
104 else
105 {
106 show_fatal($err_captcha_disabled);
107 }
108
109 #
110 ### Ende ###
111
112 ?>

patrick-canterino.de