Beispiel #1
0
 function captcha($sourceFolder, $moduleFolder, $uploadFolder, $urlRequestRoot, $cmsFolder, $length = 5)
 {
     $this->sourceFolder = $sourceFolder;
     $this->moduleFolder = $moduleFolder;
     $this->uploadFolder = $uploadFolder;
     $this->urlRequestRoot = $urlRequestRoot;
     $this->cmsFolder = $cmsFolder;
     // header('Content-type: image/png');
     $this->Length = $length;
     //$this->fontpath = dirname($_SERVER['SCRIPT_FILENAME']) . '/fonts/';
     global $sourceFolder, $moduleFolder;
     $this->fontpath = "{$sourceFolder}/{$moduleFolder}/form/captcha/fonts/";
     $this->fonts = $this->getFonts();
     $errormgr = new error();
     if ($this->fonts == FALSE) {
         //$errormgr = new error;
         $errormgr->addError('No fonts available!');
         $errormgr->displayError();
         //      	die();
     }
     if (function_exists('imagettftext') == FALSE) {
         $errormgr->addError('');
         $errormgr->displayError();
         //       die();
     }
     $this->stringGen();
     $this->makeCaptcha();
 }
 function captcha($length = 6)
 {
     header('Content-type: image/png');
     $this->Length = $length;
     $this->fontpath = 'images/';
     $this->fonts = $this->getFonts();
     $errormgr = new error();
     if ($this->fonts == FALSE) {
         //$errormgr = new error;
         $errormgr->addError('No fonts available!');
         $errormgr->displayError();
         die;
     }
     if (function_exists('imagettftext') == FALSE) {
         $errormgr->addError('');
         $errormgr->displayError();
         die;
     }
     $this->stringGen();
     $this->makeCaptcha();
 }
Beispiel #3
0
 function captcha()
 {
     $this->fontpath = JPATH_COMPONENT . DS . 'fonts' . DS;
     $this->fonts = $this->getFonts();
     $errormgr = new error();
     if ($this->imagetype == 'FREETYPE') {
         if ($this->fonts == FALSE) {
             $errormgr->addError('No fonts available!');
             $errormgr->displayError();
             die;
         }
         if (function_exists('imagettftext') == FALSE) {
             $errormgr->addError('the function imagettftext does not exist.');
             $errormgr->displayError();
             die;
         }
     }
     header('Content-type: image/png');
     ob_clean();
     $this->stringGenerate();
     $this->makeCaptcha();
     //exit;
 }
Beispiel #4
0
 function captcha($length = 6)
 {
     global $settings;
     header('Content-type: image/png');
     $this->Length = $length;
     //$this->fontpath = dirname($_SERVER['SCRIPT_FILENAME']) . '/fonts/';
     $this->fontpath = "theme/{$settings['theme']}/font/";
     $this->fonts = $this->getFonts();
     $errormgr = new error();
     if ($this->fonts == FALSE) {
         //$errormgr = new error;
         $errormgr->addError('No fonts available!');
         $errormgr->displayError();
         die;
     }
     if (function_exists('imagettftext') == FALSE) {
         $errormgr->addError('');
         $errormgr->displayError();
         die;
     }
     $this->stringGen();
     $this->makeCaptcha();
 }
Beispiel #5
0
 function makeCaptcha()
 {
     global $cString, $_CONF, $_TABLES, $LANG_CP00;
     if ($this->session_id != 0) {
         $sql = "UPDATE {$_TABLES['cp_sessions']} SET validation='" . $this->getCaptchaString() . "' WHERE session_id='" . DB_escapeString($this->session_id) . "'";
         DB_query($sql);
     } else {
         CAPTCHA_errorLog("CAPTCHA: No valid session id passed");
         exit;
     }
     switch ($this->driver) {
         case 0:
         case 1:
             if ($this->gfxformat != 'png' && $this->gfxformat != 'jpg') {
                 header('Content-type: image/gif');
                 COM_errorLog("CAPTCHA: No valid gfxFormat specified");
                 $errormgr = new error();
                 $errormgr->addError('');
                 $errormgr->displayError();
                 die;
             }
             $header = 'Content-type: image/' . $this->gfxformat;
             header($header);
             if ($this->driver == 0) {
                 $imagelength = $this->Length * 25 + 16;
                 $imageheight = 75;
                 $image = imagecreate($imagelength, $imageheight);
                 $bgcolor = imagecolorallocate($image, 255, 255, 255);
                 $stringcolor = imagecolorallocate($image, 0, 0, 0);
                 $filter = new filters();
                 $filter->signs($image, $this->getRandFont());
                 for ($i = 0; $i < strlen($this->CaptchaString); $i++) {
                     imagettftext($image, 25, mt_rand(-15, 15), $i * 25 + 10, mt_rand(30, 70), $stringcolor, $this->getRandFont(), $this->CaptchaString[$i]);
                 }
                 switch ($this->gfxformat) {
                     case 'png':
                         imagepng($image);
                         break;
                     case 'jpg':
                         imagejpeg($image);
                         break;
                 }
                 imagedestroy($image);
             } else {
                 // ImageMagick code originally written by
                 // Thom Skrtich  (email : bisohpthom@supertwist.net)
                 // used in SecureImage a CAPTCHA plugin for WordPress.
                 $gravity = 'Center';
                 # modify the image according to the generated settings
                 $size = rand($this->sizemin, $this->sizemax);
                 $blur = rand($this->blurmin, $this->blurmax);
                 $angle = rand($this->anglemin, $this->anglemax);
                 $swirl = rand($this->swirlmin, $this->swirlmax);
                 $wave = rand($this->wavemin, $this->wavemax);
                 $cString = $this->CaptchaString;
                 $i = strlen($cString);
                 $newString = '';
                 for ($x = 0; $x < $i; $x++) {
                     $newString .= $cString[$x];
                     $newString .= ' ';
                 }
                 # prepare our image magick command
                 $cmd = '"' . $this->convertpath . '"';
                 $cmd .= ' -font "' . $this->getRandFont() . '"';
                 $cmd .= ' -pointsize ' . $size;
                 $cmd .= ' -gravity "' . $gravity . '"';
                 $cmd .= ' -annotate 0 "' . $newString . '"';
                 $cmd .= ' -blur ' . $blur;
                 $cmd .= ' -rotate ' . $angle;
                 $cmd .= ' -swirl ' . $swirl;
                 $cmd .= ' -wave ' . $wave . 'x80';
                 $cmd .= ' ' . $this->getRandBackground() . ' - ';
                 if (PHP_OS == "WINNT") {
                     $pcmd = 'cmd /c " ' . $cmd . '"';
                 } else {
                     $pcmd = $cmd;
                 }
                 if ($this->debug) {
                     COM_errorLog("CAPTCHA cmd: " . $pcmd);
                 }
                 passthru($pcmd);
             }
             break;
         case 2:
             header('Content-type: image/jpeg');
             $filename = $cString[$this->CaptchaString] . '.jpg';
             $fp = fopen($_CONF['path'] . 'plugins/captcha/images/static/' . $this->imageset . '/' . $filename, 'rb');
             if ($fp != NULL) {
                 while (!feof($fp)) {
                     $buf = fgets($fp, 8192);
                     echo $buf;
                 }
                 fclose($fp);
             } else {
                 COM_errorLog("CAPTCHA: Unable to open static image file");
             }
             break;
         case 3:
         case 4:
         case 5:
             break;
         case 6:
             /*
                             $output =  $this->first . ' '.$this->operator . ' ' . $this->second . ' = ';
                             $imagelength = $this->Length * 25 + 16;
                             $imageheight = 75;
                             $im = imagecreate($imagelength, $imageheight);
                             // White background and blue text
                             $bg = imagecolorallocate($im, 255, 255, 255);
                             $textcolor = imagecolorallocate($im, 0, 0, 255);
                             // Write the string at the top left
                             imagestring($im, 5, 35, 15, $output, $textcolor);
                             imagestring($im, 25, 5, 45, $LANG_CP00['captcha_help'], $textcolor);
                             // Output the image
                             header('Content-type: image/png');
                             imagepng($im);
                             imagedestroy($im);
             */
             $output = $this->first . '' . $this->operator . '' . $this->second . '=';
             $font = $this->fontpath . 'bluehigl.ttf';
             $imagelength = $this->Length * 25 + 16;
             $imageheight = 75;
             $image = imagecreate($imagelength, $imageheight);
             $bgcolor = imagecolorallocate($image, 255, 255, 255);
             $stringcolor = imagecolorallocate($image, 0, 0, 0);
             for ($i = 0; $i < strlen($output); $i++) {
                 imagettftext($image, 25, mt_rand(-15, 15), $i * 25 + 10, 45, $stringcolor, $font, $output[$i]);
             }
             switch ($this->gfxformat) {
                 case 'png':
                     imagepng($image);
                     break;
                 case 'jpg':
                     imagejpeg($image);
                     break;
             }
             imagedestroy($image);
             break;
         default:
             break;
     }
 }
Beispiel #6
0
 function captcha($length = 4)
 {
     global $mainframe;
     if (!function_exists('imagecreate')) {
         header('Location:uploads/nogd.gif');
     }
     //die('GD Library not found!');
     header('Content-type: image/png');
     //$mainframe->registerEvent( 'onAfterInitialise', 'pngHeader' );
     $this->Length = $length;
     //$this->fontpath = dirname($_SERVER['SCRIPT_FILENAME']) . '/fonts/';
     $this->fontpath = JPATH_SITE . DS . 'components' . DS . 'com_forme' . DS . 'fonts' . DS;
     //echo $this->fontpath;die();
     $this->fonts = $this->getFonts();
     $errormgr = new error();
     if ($this->fonts == FALSE) {
         //$errormgr = new error;
         $errormgr->addError('No fonts available!');
         $errormgr->displayError();
         die;
     }
     if (function_exists('imagettftext') == FALSE) {
         $errormgr->addError('Function imagettftext does not exist');
         $errormgr->displayError();
         die;
     }
     $this->stringGenerate();
     $this->makeCaptcha();
 }