X-Git-Url: https://git.toastfreeware.priv.at/toast/cookiecaptcha.git/blobdiff_plain/bdc5e0ca1fb8818da66cc9403cb65045a7a9db74..6207682c65e21b25ca3ca186c8944a2340da2cae:/MathCaptcha.php diff --git a/MathCaptcha.php b/MathCaptcha.php index e2a2a4e..772687a 100644 --- a/MathCaptcha.php +++ b/MathCaptcha.php @@ -4,56 +4,15 @@ * Captcha class using simple sums and the math renderer * Not brilliant, but enough to dissuade casual spam bots * - * @package MediaWiki - * @subpackage Extensions + * @addtogroup Extensions * @author Rob Church * @copyright © 2006 Rob Church * @licence GNU General Public Licence 2.0 */ -if( defined( 'MEDIAWIKI' ) ) { - - class MathCaptcha extends SimpleCaptcha { - - /** Validate a captcha response */ - function keyMatch( $req, $info ) { - return (int)$req->getVal( 'wpCaptchaAnswer' ) == (int)$info['answer']; - } - - /** Produce a nice little form */ - function getForm() { - list( $sum, $answer ) = $this->pickSum(); - $index = $this->storeCaptcha( array( 'answer' => $answer ) ); - - $form = ''; - $form .= '
' . $this->fetchMath( $sum ) . '' . wfInput( 'wpCaptchaAnswer', false, false, array( 'tabindex' => '1' ) ) . '
'; - $form .= wfHidden( 'wpCaptchaId', $index ); - return $form; - } - - /** Pick a random sum */ - function pickSum() { - $a = mt_rand( 0, 100 ); - $b = mt_rand( 0, 10 ); - $op = mt_rand( 0, 1 ) ? '+' : '-'; - $sum = "{$a} {$op} {$b} = "; - $ans = $op == '+' ? ( $a + $b ) : ( $a - $b ); - return array( $sum, $ans ); - } - - /** Fetch the math */ - function fetchMath( $sum ) { - $math = new MathRenderer( $sum ); - $math->setOutputMode( MW_MATH_PNG ); - $html = $math->render(); - return preg_replace( '/alt=".*"/', '', $html ); - } - - } - -} else { +if( !defined( 'MEDIAWIKI' ) ) { echo( "This file is an extension to the MediaWiki software and cannot be used standalone.\n" ); die( 1 ); } +$wgAutoloadClasses['MathCaptcha'] = dirname( __FILE__ ) . '/MathCaptcha.class.php'; -?> \ No newline at end of file