/*
Plugin Name: Really Simple CAPTCHA
Plugin URI: http://ideasilo.wordpress.com/2009/03/14/really-simple-captcha/
Description: Really Simple CAPTCHA is a CAPTCHA module intended to be called from other plugins. It is originally created for my Contact Form 7 plugin.
Author: Takayuki Miyoshi
Version: 1.1
Author URI: http://ideasilo.wordpress.com/
*/
/* Copyright 2007-2009 Takayuki Miyoshi (email: takayukister at gmail.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
class wpdevReallySimpleCaptcha {
function wpdevReallySimpleCaptcha() {
/* Characters available in images */
$this->chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
/* Length of a word in an image */
$this->char_length = 4;
/* Array of fonts. Randomly picked up per character */
$this->fonts = array(
dirname( __FILE__ ) . '/gentium/GenAI102.TTF',
dirname( __FILE__ ) . '/gentium/GenAR102.TTF',
dirname( __FILE__ ) . '/gentium/GenI102.TTF',
dirname( __FILE__ ) . '/gentium/GenR102.TTF' );
/* Directory temporary keeping CAPTCHA images and corresponding codes */
$this->tmp_dir = dirname( __FILE__ ) . '/tmp/';
/* Array of CAPTCHA image size. Width and height */
$this->img_size = array( 72, 24 );
/* Background color of CAPTCHA image. RGB color 0-255 */
$this->bg = array( 255, 255, 255 );
/* Foreground (character) color of CAPTCHA image. RGB color 0-255 */
$this->fg = array( 0, 0, 0 );
/* Coordinates for a text in an image. I don't know the meaning. Just adjust. */
$this->base = array( 6, 18 );
/* Font size */
$this->font_size = 14;
/* Width of a character */
$this->font_char_width = 15;
/* Image type. 'png', 'gif' or 'jpeg' */
$this->img_type = 'png';
/* Mode of temporary files */
$this->file_mode = 0755;
}
/* Generate and return random word with $chars characters x $char_length length */
function generate_random_word() {
$word = '';
for ( $i = 0; $i < $this->char_length; $i++ ) {
$pos = mt_rand( 0, strlen( $this->chars ) - 1 );
$char = $this->chars[$pos];
$word .= $char;
}
return $word;
}
/* Generate CAPTCHA code and corresponding code and save them into $tmp_dir directory.
$prefix is file prefix for both files.
$captcha is a random word usually generated by generate_random_word()
This function returns the filename of the CAPTCHA image temporary file */
function generate_image( $prefix, $word ) {
$filename = null;
if ( $im = imagecreatetruecolor( $this->img_size[0], $this->img_size[1] ) ) {
$bg = imagecolorallocate( $im, $this->bg[0], $this->bg[1], $this->bg[2] );
$fg = imagecolorallocate( $im, $this->fg[0], $this->fg[1], $this->fg[2] );
imagefill( $im, 0, 0, $bg );
$x = $this->base[0] + mt_rand( -2, 2 );
for ( $i = 0; $i < strlen( $word ); $i++ ) {
$font = $this->fonts[array_rand( $this->fonts )];
imagettftext( $im, $this->font_size, mt_rand( -2, 2 ), $x,
$this->base[1] + mt_rand( -2, 2 ), $fg, $font, $word[$i] );
$x += $this->font_char_width;
}
switch ( $this->img_type ) {
case 'jpeg':
$filename = $prefix . '.jpeg';
imagejpeg( $im, $this->tmp_dir . $filename );
break;
case 'gif':
$filename = $prefix . '.gif';
imagegif( $im, $this->tmp_dir . $filename );
break;
case 'png':
default:
$filename = $prefix . '.png';
imagepng( $im, $this->tmp_dir . $filename );
}
imagedestroy( $im );
@chmod( $this->tmp_dir . $filename, $this->file_mode );
}
if ( $fh = fopen( $this->tmp_dir . $prefix . '.php', 'w' ) ) {
@chmod( $this->tmp_dir . $prefix . '.php', $this->file_mode );
fwrite( $fh, '' );
fclose( $fh );
}
return $filename;
}
/* Check a $response against the code kept in the temporary file with $prefix
Return true if the two match, otherwise return false. */
function check( $prefix, $response ) {
if ( is_readable( $this->tmp_dir . $prefix . '.php' ) ) {
include( $this->tmp_dir . $prefix . '.php' );
if ( 0 == strcasecmp( $response, $captcha ) )
return true;
}
return false;
}
/* Remove temporary files with $prefix */
function remove( $prefix ) {
$suffixes = array( '.jpeg', '.gif', '.png', '.php' );
foreach ( $suffixes as $suffix ) {
$file = $this->tmp_dir . $prefix . $suffix;
if ( is_file( $file ) )
unlink( $file );
}
}
/* Clean up dead files older than $minutes in the tmp folder */
function cleanup( $minutes = 60 ) {
$dir = $this->tmp_dir;
if ( ! is_dir( $dir ) || ! is_readable( $dir ) || ! is_writable( $dir ) )
return false;
$count = 0;
if ( $handle = @opendir( $dir ) ) {
while ( false !== ( $file = readdir( $handle ) ) ) {
if ( ! preg_match( '/^[0-9]+\.(php|png|gif|jpeg)$/', $file ) )
continue;
$stat = @stat( $dir . $file );
if ( ( $stat['mtime'] + $minutes * 60 ) < time() ) {
@unlink( $dir . $file );
$count += 1;
}
}
closedir( $handle );
}
return $count;
}
}
?>
Fatal error: Class 'wpdevReallySimpleCaptcha' not found in /home/content/89/13956489/html/wp-content/plugins/booking/lib/wpdev-booking-class.php on line 21