65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php
|
|
|
|
// phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
|
|
// phpcs:disable PSR1.Files.SideEffects
|
|
defined('SYSPATH') or die('No direct access allowed.');
|
|
// phpcs:enable PSR1.Files.SideEffects
|
|
// phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps
|
|
|
|
|
|
/**
|
|
* 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);
|
|
} elseif (Captcha::$config['complexity'] < 7) {
|
|
// Normal
|
|
$numbers[] = mt_rand(10, 20);
|
|
$numbers[] = mt_rand(1, 10);
|
|
} else {
|
|
// Difficult, well, not really ;)
|
|
$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
|