<?php 
define('IN_CB', true); 
include_once('include/function.php'); 
 
function showError() { 
    header('Content-Type: image/png'); 
    readfile('error.png'); 
    exit; 
} 
 
$requiredKeys = array('code', 'filetype', 'dpi', 'scale', 'rotation', 'font_family', 'font_size', 'text'); 
 
// Check if everything is present in the request 
foreach ($requiredKeys as $key) { 
    if (!isset($_GET[$key])) { 
        showError(); 
    } 
} 
 
if (!preg_match('/^[A-Za-z0-9]+$/', $_GET['code'])) { 
    showError(); 
} 
 
$code = $_GET['code']; 
 
// Check if the code is valid 
if (!file_exists('config' . DIRECTORY_SEPARATOR . $code . '.php')) { 
    showError(); 
} 
 
include_once('config' . DIRECTORY_SEPARATOR . $code . '.php'); 
 
$class_dir = '..' . DIRECTORY_SEPARATOR . 'class'; 
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGColor.php'); 
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGBarcode.php'); 
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGDrawing.php'); 
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGFontFile.php'); 
 
if (!include_once($class_dir . DIRECTORY_SEPARATOR . $classFile)) { 
    showError(); 
} 
 
include_once('config' . DIRECTORY_SEPARATOR . $baseClassFile); 
 
$filetypes = array('PNG' => BCGDrawing::IMG_FORMAT_PNG, 'JPEG' => BCGDrawing::IMG_FORMAT_JPEG, 'GIF' => BCGDrawing::IMG_FORMAT_GIF); 
 
$drawException = null; 
try { 
    $color_black = new BCGColor(0, 0, 0); 
    $color_white = new BCGColor(255, 255, 255); 
 
    $code_generated = new $className(); 
 
    if (function_exists('baseCustomSetup')) { 
        baseCustomSetup($code_generated, $_GET); 
    } 
 
    if (function_exists('customSetup')) { 
        customSetup($code_generated, $_GET); 
    } 
 
    $code_generated->setScale(max(1, min(4, $_GET['scale']))); 
    $code_generated->setBackgroundColor($color_white); 
    $code_generated->setForegroundColor($color_black); 
 
    if ($_GET['text'] !== '') { 
        $text = convertText($_GET['text']); 
        $code_generated->parse($text); 
    } 
} catch(Exception $exception) { 
    $drawException = $exception; 
} 
 
$drawing = new BCGDrawing('', $color_white); 
if($drawException) { 
    $drawing->drawException($drawException); 
} else { 
    $drawing->setBarcode($code_generated); 
    $drawing->setRotationAngle($_GET['rotation']); 
    $drawing->setDPI($_GET['dpi'] === 'NULL' ? null : max(72, min(300, intval($_GET['dpi'])))); 
    $drawing->draw(); 
} 
 
switch ($_GET['filetype']) { 
    case 'PNG': 
        header('Content-Type: image/png'); 
        break; 
    case 'JPEG': 
        header('Content-Type: image/jpeg'); 
        break; 
    case 'GIF': 
        header('Content-Type: image/gif'); 
        break; 
} 
 
$drawing->finish($filetypes[$_GET['filetype']]); 
?>
 
 |