Вход Регистрация
Файл: wboard/source/system/controller/captcha.php
Строк: 49
<?php

/**
 * Wboard
 * Captcha
 * @author Screamer
 * @copyright 2013
 */

class Module_Captcha extends Module
{

    
/**
     * Display image and set code to session ($_SESSION['captcha'])
     * @return (void)
     */
    
public function index()
    {
        
header("Content-type: image/png");
        
$this->display FALSE;
        
$data $this->render();
        
$_SESSION['captcha'] = $data[0];
        
imagepng($data[1]);
    }

    
/**
     * Generate code. Create image
     * @return (array) [code], [image]
     */
    
protected function render()
    {
        
// List of symbols
        
$alphabet '012345789';
        
$alphabet preg_split('//u'$alphabet, -1PREG_SPLIT_NO_EMPTY);
        
$a_length count($alphabet) - 1;
        
// Length of string
        
$max_len rand(36);
        
// Load font
        
$font $this->path 'files' DIRECTORY_SEPARATOR 'consola.ttf';
        
// Create image
        
$image imagecreatetruecolor(16040);
        
// Set background
        
imagefill($image00imagecolorallocate($image255255255));
        
// Draw text
        
$code '';
        for (
$i 0$x 15$i $max_len$i++, $x += 14) {
            
$color imagecolorallocate($imagerand(1050), rand(1050), rand(1050));
            
$symbol $alphabet[rand(0$a_length)];
            
$code .= $symbol;
            
imagefttext($imagerand(1820), rand(-3030), $xrand(2030), $color$font$symbol);
        }
        
// Noise
        
for ($i 0$x 15$i $max_len$i++, $x += 18) {
            
$color imagecolorallocate($imagerand(200220), rand(200220), rand(200220));
            
imagefttext($imagerand(1820), rand(-3030), $xrand(2030), $color$font$alphabet[rand(0$a_length)]);
        }
        return array(
$code$image);
    }

}
Онлайн: 0
Реклама