/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/helpers/captcha_helper.php

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-30 12:02:31 UTC
  • mfrom: (85.1.28 lenasys)
  • Revision ID: gustav.hartvigsson@gmail.com-20130530120231-ttqgqjqw2w8enn7g
Merged Ohlsons changes:
added function to get ssn and name for the registrationspages in the user model.
added the registrationpage for students.
edited the registration page for instructors
edited the css for both the registrationpages
minor fix to registration css

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
2
/**
 
3
 * CodeIgniter
 
4
 *
 
5
 * An open source application development framework for PHP 5.1.6 or newer
 
6
 *
 
7
 * @package             CodeIgniter
 
8
 * @author              ExpressionEngine Dev Team
 
9
 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
 
10
 * @license             http://codeigniter.com/user_guide/license.html
 
11
 * @link                http://codeigniter.com
 
12
 * @since               Version 1.0
 
13
 * @filesource
 
14
 */
 
15
 
 
16
// ------------------------------------------------------------------------
 
17
 
 
18
/**
 
19
 * CodeIgniter CAPTCHA Helper
 
20
 *
 
21
 * @package             CodeIgniter
 
22
 * @subpackage  Helpers
 
23
 * @category    Helpers
 
24
 * @author              ExpressionEngine Dev Team
 
25
 * @link                http://codeigniter.com/user_guide/helpers/xml_helper.html
 
26
 */
 
27
 
 
28
// ------------------------------------------------------------------------
 
29
 
 
30
/**
 
31
 * Create CAPTCHA
 
32
 *
 
33
 * @access      public
 
34
 * @param       array   array of data for the CAPTCHA
 
35
 * @param       string  path to create the image in
 
36
 * @param       string  URL to the CAPTCHA image folder
 
37
 * @param       string  server path to font
 
38
 * @return      string
 
39
 */
 
40
if ( ! function_exists('create_captcha'))
 
41
{
 
42
        function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '')
 
43
        {
 
44
                $defaults = array('word' => '', 'img_path' => '', 'img_url' => '', 'img_width' => '150', 'img_height' => '30', 'font_path' => '', 'expiration' => 7200);
 
45
 
 
46
                foreach ($defaults as $key => $val)
 
47
                {
 
48
                        if ( ! is_array($data))
 
49
                        {
 
50
                                if ( ! isset($$key) OR $$key == '')
 
51
                                {
 
52
                                        $$key = $val;
 
53
                                }
 
54
                        }
 
55
                        else
 
56
                        {
 
57
                                $$key = ( ! isset($data[$key])) ? $val : $data[$key];
 
58
                        }
 
59
                }
 
60
 
 
61
                if ($img_path == '' OR $img_url == '')
 
62
                {
 
63
                        return FALSE;
 
64
                }
 
65
 
 
66
                if ( ! @is_dir($img_path))
 
67
                {
 
68
                        return FALSE;
 
69
                }
 
70
 
 
71
                if ( ! is_writable($img_path))
 
72
                {
 
73
                        return FALSE;
 
74
                }
 
75
 
 
76
                if ( ! extension_loaded('gd'))
 
77
                {
 
78
                        return FALSE;
 
79
                }
 
80
 
 
81
                // -----------------------------------
 
82
                // Remove old images
 
83
                // -----------------------------------
 
84
 
 
85
                list($usec, $sec) = explode(" ", microtime());
 
86
                $now = ((float)$usec + (float)$sec);
 
87
 
 
88
                $current_dir = @opendir($img_path);
 
89
 
 
90
                while ($filename = @readdir($current_dir))
 
91
                {
 
92
                        if ($filename != "." and $filename != ".." and $filename != "index.html")
 
93
                        {
 
94
                                $name = str_replace(".jpg", "", $filename);
 
95
 
 
96
                                if (($name + $expiration) < $now)
 
97
                                {
 
98
                                        @unlink($img_path.$filename);
 
99
                                }
 
100
                        }
 
101
                }
 
102
 
 
103
                @closedir($current_dir);
 
104
 
 
105
                // -----------------------------------
 
106
                // Do we have a "word" yet?
 
107
                // -----------------------------------
 
108
 
 
109
           if ($word == '')
 
110
           {
 
111
                        $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 
112
 
 
113
                        $str = '';
 
114
                        for ($i = 0; $i < 8; $i++)
 
115
                        {
 
116
                                $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
 
117
                        }
 
118
 
 
119
                        $word = $str;
 
120
           }
 
121
 
 
122
                // -----------------------------------
 
123
                // Determine angle and position
 
124
                // -----------------------------------
 
125
 
 
126
                $length = strlen($word);
 
127
                $angle  = ($length >= 6) ? rand(-($length-6), ($length-6)) : 0;
 
128
                $x_axis = rand(6, (360/$length)-16);
 
129
                $y_axis = ($angle >= 0 ) ? rand($img_height, $img_width) : rand(6, $img_height);
 
130
 
 
131
                // -----------------------------------
 
132
                // Create image
 
133
                // -----------------------------------
 
134
 
 
135
                // PHP.net recommends imagecreatetruecolor(), but it isn't always available
 
136
                if (function_exists('imagecreatetruecolor'))
 
137
                {
 
138
                        $im = imagecreatetruecolor($img_width, $img_height);
 
139
                }
 
140
                else
 
141
                {
 
142
                        $im = imagecreate($img_width, $img_height);
 
143
                }
 
144
 
 
145
                // -----------------------------------
 
146
                //  Assign colors
 
147
                // -----------------------------------
 
148
 
 
149
                $bg_color               = imagecolorallocate ($im, 255, 255, 255);
 
150
                $border_color   = imagecolorallocate ($im, 153, 102, 102);
 
151
                $text_color             = imagecolorallocate ($im, 204, 153, 153);
 
152
                $grid_color             = imagecolorallocate($im, 255, 182, 182);
 
153
                $shadow_color   = imagecolorallocate($im, 255, 240, 240);
 
154
 
 
155
                // -----------------------------------
 
156
                //  Create the rectangle
 
157
                // -----------------------------------
 
158
 
 
159
                ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color);
 
160
 
 
161
                // -----------------------------------
 
162
                //  Create the spiral pattern
 
163
                // -----------------------------------
 
164
 
 
165
                $theta          = 1;
 
166
                $thetac         = 7;
 
167
                $radius         = 16;
 
168
                $circles        = 20;
 
169
                $points         = 32;
 
170
 
 
171
                for ($i = 0; $i < ($circles * $points) - 1; $i++)
 
172
                {
 
173
                        $theta = $theta + $thetac;
 
174
                        $rad = $radius * ($i / $points );
 
175
                        $x = ($rad * cos($theta)) + $x_axis;
 
176
                        $y = ($rad * sin($theta)) + $y_axis;
 
177
                        $theta = $theta + $thetac;
 
178
                        $rad1 = $radius * (($i + 1) / $points);
 
179
                        $x1 = ($rad1 * cos($theta)) + $x_axis;
 
180
                        $y1 = ($rad1 * sin($theta )) + $y_axis;
 
181
                        imageline($im, $x, $y, $x1, $y1, $grid_color);
 
182
                        $theta = $theta - $thetac;
 
183
                }
 
184
 
 
185
                // -----------------------------------
 
186
                //  Write the text
 
187
                // -----------------------------------
 
188
 
 
189
                $use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE;
 
190
 
 
191
                if ($use_font == FALSE)
 
192
                {
 
193
                        $font_size = 5;
 
194
                        $x = rand(0, $img_width/($length/3));
 
195
                        $y = 0;
 
196
                }
 
197
                else
 
198
                {
 
199
                        $font_size      = 16;
 
200
                        $x = rand(0, $img_width/($length/1.5));
 
201
                        $y = $font_size+2;
 
202
                }
 
203
 
 
204
                for ($i = 0; $i < strlen($word); $i++)
 
205
                {
 
206
                        if ($use_font == FALSE)
 
207
                        {
 
208
                                $y = rand(0 , $img_height/2);
 
209
                                imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color);
 
210
                                $x += ($font_size*2);
 
211
                        }
 
212
                        else
 
213
                        {
 
214
                                $y = rand($img_height/2, $img_height-3);
 
215
                                imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));
 
216
                                $x += $font_size;
 
217
                        }
 
218
                }
 
219
 
 
220
 
 
221
                // -----------------------------------
 
222
                //  Create the border
 
223
                // -----------------------------------
 
224
 
 
225
                imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $border_color);
 
226
 
 
227
                // -----------------------------------
 
228
                //  Generate the image
 
229
                // -----------------------------------
 
230
 
 
231
                $img_name = $now.'.jpg';
 
232
 
 
233
                ImageJPEG($im, $img_path.$img_name);
 
234
 
 
235
                $img = "<img src=\"$img_url$img_name\" width=\"$img_width\" height=\"$img_height\" style=\"border:0;\" alt=\" \" />";
 
236
 
 
237
                ImageDestroy($im);
 
238
 
 
239
                return array('word' => $word, 'time' => $now, 'image' => $img);
 
240
        }
 
241
}
 
242
 
 
243
// ------------------------------------------------------------------------
 
244
 
 
245
/* End of file captcha_helper.php */
 
246
/* Location: ./system/heleprs/captcha_helper.php */
 
 
b'\\ No newline at end of file'