Changeset 206 for captcha/trunk/plugins

Show
Ignore:
Timestamp:
05/18/06 15:20:11 (3 years ago)
Author:
ogawa
Message:

Just a little fix.

Location:
captcha/trunk/plugins/captcha
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • 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 
    110package MT::Plugin::Captcha; 
    211use strict; 
    312use MT; 
    413use MT::Template::Context; 
     14use Authen::Captcha; 
    515use base 'MT::Plugin'; 
    616our $VERSION = '0.01'; 
     
    1626MT->add_plugin($plugin); 
    1727 
    18 use Authen::Captcha; 
    1928my $captcha = Authen::Captcha->new(data_folder => './data', 
    2029                                   output_folder => './images'); 
     
    2433sub captcha_test { 
    2534    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    } 
    2940 
    3041    my $q = $app->{query}; 
    31     my $captcha_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; 
    3344 
    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; 
    3846} 
    3947 
     
    4250    my $path = MT::ConfigMgr->instance->CGIPath; 
    4351    $path .= '/' unless $path =~ m!/$!; 
    44     $path . 'plugins/captcha/captcha_js.fcgi'; # ad hoc 
     52    $path . 'plugins/captcha/captcha_js.cgi'; # ad hoc 
    4553} 
    4654 
  • captcha/trunk/plugins/captcha/captcha_js.cgi

    r205 r206  
    11#!/usr/bin/perl 
     2# 
     3# $Id$ 
     4# 
    25use Authen::Captcha; 
    36use CGI; 
     
    1013 
    1114my $q = CGI->new; 
     15gen_code($q); 
    1216 
    13 my $captcha_md5 = $captcha->generate_code($captcha_length); 
     17sub gen_code { 
     18    my $q = shift; 
     19    my $url = $q->url; 
     20    $url =~ s!/[^/]+$!!; 
    1421 
    15 my $url = $q->url; 
    16 $url =~ s!/[^/]+$!!; 
     22    my $captcha_md5 = $captcha->generate_code($captcha_length); 
    1723 
    18 print $q->header('text/javascript'); 
    19 print <<EOD; 
     24    print $q->header('text/javascript'); 
     25    print <<EOD; 
    2026if (!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&trade; 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&trade; 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>'); 
    2733} 
    2834EOD 
     35} 
    2936 
    30371; 
  • captcha/trunk/plugins/captcha/captcha_js.fcgi

    r205 r206  
    11#!/usr/bin/perl 
     2# 
     3# $Id$ 
     4# 
    25use Authen::Captcha; 
    36use CGI::Fast; 
     
    1013 
    1114while (my $q = CGI::Fast->new) { 
    12     my $captcha_md5 = $captcha->generate_code($captcha_length); 
     15    gen_code($q); 
     16} 
    1317 
     18sub gen_code { 
     19    my $q = shift; 
    1420    my $url = $q->url; 
    1521    $url =~ s!/[^/]+$!!; 
     22 
     23    my $captcha_md5 = $captcha->generate_code($captcha_length); 
    1624 
    1725    print $q->header('text/javascript'); 
    1826    print <<EOD; 
    1927if (!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&trade; 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&trade; 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>'); 
    2634} 
    2735EOD