blob: 4ac20248372e9f5c0bcc1d394fd9d0f274bb17a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* Captcha driver for "math" style.
*
* $Id: Math.php 3769 2008-12-15 00:48:56Z zombor $
*
* @package Captcha
* @author Kohana Team
* @copyright (c) 2007-2008 Kohana Team
* @license http://kohanaphp.com/license.html
*/
class Captcha_Math_Driver extends Captcha_Driver {
private $math_exercice;
/**
* Generates a new Captcha challenge.
*
* @return string the challenge answer
*/
public function generate_challenge()
{
// Easy
if (Captcha::$config['complexity'] < 4)
{
$numbers[] = mt_rand(1, 5);
$numbers[] = mt_rand(1, 4);
}
// Normal
elseif (Captcha::$config['complexity'] < 7)
{
$numbers[] = mt_rand(10, 20);
$numbers[] = mt_rand(1, 10);
}
// Difficult, well, not really ;)
else
{
$numbers[] = mt_rand(100, 200);
$numbers[] = mt_rand(10, 20);
$numbers[] = mt_rand(1, 10);
}
// Store the question for output
$this->math_exercice = implode(' + ', $numbers).' = ';
// Return the answer
return array_sum($numbers);
}
/**
* Outputs the Captcha riddle.
*
* @param boolean html output
* @return mixed
*/
public function render($html)
{
return $this->math_exercice;
}
} // End Captcha Math Driver Class
|