Changeset 206
- Timestamp:
- 05/18/06 15:20:11 (2 years ago)
- Files:
-
- captcha/trunk/plugins/captcha/captcha.pl (modified) (4 diffs)
- captcha/trunk/plugins/captcha/captcha_js.cgi (modified) (2 diffs)
- captcha/trunk/plugins/captcha/captcha_js.fcgi (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
captcha/trunk/plugins/captcha/captcha.pl
r205 r206 1 # Captcha - A simple plugin for commenting with CAPTCHA test. 2 # 3 # $Id$ 4 # 5 # This software is provided as-is. You may use it for commercial or 6 # personal use. If you distribute it, please keep this notice intact. 7 # 8 # Copyright (c) 2006 Hirotaka Ogawa 9 1 10 package MT::Plugin::Captcha; 2 11 use strict; 3 12 use MT; 4 13 use MT::Template::Context; 14 use Authen::Captcha; 5 15 use base 'MT::Plugin'; 6 16 our $VERSION = '0.01'; … … 16 26 MT->add_plugin($plugin); 17 27 18 use Authen::Captcha;19 28 my $captcha = Authen::Captcha->new(data_folder => './data', 20 29 output_folder => './images'); … … 24 33 sub captcha_test { 25 34 my ($eh, $app, $entry) = @_; 26 27 my ($session_key, $commenter) = $app->_get_commenter_session(); 28 return 1 if $commenter; 35 my $blog = $entry->blog; 36 if ($blog->allow_reg_comments && $blog->effective_remote_auth_token) { 37 my ($session_key, $commenter) = $app->_get_commenter_session(); 38 return 1 if $commenter; 39 } 29 40 30 41 my $q = $app->{query}; 31 my $c aptcha_code = $q->param('captcha_code') or return 0;32 my $ captcha_md5 = $q->param('captcha_md5') or return 0;42 my $code = $q->param('captcha_code') or return 0; 43 my $md5 = $q->param('captcha_md5') or return 0; 33 44 34 if ($captcha->check_code($captcha_code, $captcha_md5) > 0) { 35 return 1; 36 } 37 return 0; 45 ($captcha->check_code($code, $md5) > 0) ? 1 : 0; 38 46 } 39 47 … … 42 50 my $path = MT::ConfigMgr->instance->CGIPath; 43 51 $path .= '/' unless $path =~ m!/$!; 44 $path . 'plugins/captcha/captcha_js. fcgi'; # ad hoc52 $path . 'plugins/captcha/captcha_js.cgi'; # ad hoc 45 53 } 46 54 captcha/trunk/plugins/captcha/captcha_js.cgi
r205 r206 1 1 #!/usr/bin/perl 2 # 3 # $Id$ 4 # 2 5 use Authen::Captcha; 3 6 use CGI; … … 10 13 11 14 my $q = CGI->new; 15 gen_code($q); 12 16 13 my $captcha_md5 = $captcha->generate_code($captcha_length); 17 sub gen_code { 18 my $q = shift; 19 my $url = $q->url; 20 $url =~ s!/[^/]+$!!; 14 21 15 my $url = $q->url; 16 $url =~ s!/[^/]+$!!; 22 my $captcha_md5 = $captcha->generate_code($captcha_length); 17 23 18 print $q->header('text/javascript');19 print <<EOD;24 print $q->header('text/javascript'); 25 print <<EOD; 20 26 if (!commenter_name) { 21 document.writeln('<div id="comment-captcha-block">');22 document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />');23 document.writeln('<label for="comment-captcha">CAPTCHA™ Code:</label>');24 document.writeln('<img src="$url/images/$captcha_md5.png" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />');25 document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />');26 document.writeln('</div>');27 document.writeln('<div id="comment-captcha-block">'); 28 document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />'); 29 document.writeln('<label for="comment-captcha">CAPTCHA™ Code:</label>'); 30 document.writeln('<img src="$url/images/$captcha_md5.png" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />'); 31 document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />'); 32 document.writeln('</div>'); 27 33 } 28 34 EOD 35 } 29 36 30 37 1; captcha/trunk/plugins/captcha/captcha_js.fcgi
r205 r206 1 1 #!/usr/bin/perl 2 # 3 # $Id$ 4 # 2 5 use Authen::Captcha; 3 6 use CGI::Fast; … … 10 13 11 14 while (my $q = CGI::Fast->new) { 12 my $captcha_md5 = $captcha->generate_code($captcha_length); 15 gen_code($q); 16 } 13 17 18 sub gen_code { 19 my $q = shift; 14 20 my $url = $q->url; 15 21 $url =~ s!/[^/]+$!!; 22 23 my $captcha_md5 = $captcha->generate_code($captcha_length); 16 24 17 25 print $q->header('text/javascript'); 18 26 print <<EOD; 19 27 if (!commenter_name) { 20 document.writeln('<div id="comment-captcha-block">');21 document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />');22 document.writeln('<label for="comment-captcha">CAPTCHA™ Code:</label>');23 document.writeln('<img src="$url/images/$captcha_md5.png" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />');24 document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />');25 document.writeln('</div>');28 document.writeln('<div id="comment-captcha-block">'); 29 document.writeln('<input type="hidden" name="captcha_md5" value="$captcha_md5" />'); 30 document.writeln('<label for="comment-captcha">CAPTCHA™ Code:</label>'); 31 document.writeln('<img src="$url/images/$captcha_md5.png" width="$captcha_img_width" height="$captcha_img_height" alt="CAPTCHA Image" />'); 32 document.writeln('<input type="text" id="comment-captcha" name="captcha_code" value="" length="$captcha_length" maxlength="$captcha_length" />'); 33 document.writeln('</div>'); 26 34 } 27 35 EOD
