$localeFile) $availableLocales[$key] = basename($localeFile, ".php"); foreach ($clientLocales as $clientLocale) { if (in_array($clientLocale, $availableLocales)) { $locale = $clientLocale; break; } } } require "locales/" . $locale . ".php"; $params = array( "txt" => "", "redundancy" => DEFAULT_REDUNDANCY, "margin" => DEFAULT_MARGIN, "size" => DEFAULT_SIZE, "bgColor" => DEFAULT_BGCOLOR, "fgColor" => DEFAULT_FGCOLOR, ); $qrCodeAvailable = NULL; if ( isset($_POST['txt']) AND isset($_POST['redundancy']) AND isset($_POST['margin']) AND isset($_POST['size']) AND isset($_POST['bgColor']) AND isset($_POST['fgColor']) ) { $qrCodeAvailable = true; if (strlen($_POST['txt']) >= 1 AND strlen($_POST['txt']) <= 4096) { $params['txt'] = $_POST['txt']; } else { http_response_code(400); exit("Wrong value for txt"); } if ($_POST['redundancy'] === "low" OR $_POST['redundancy'] === "medium" OR $_POST['redundancy'] === "quartile" OR $_POST['redundancy'] === "high") { $params['redundancy'] = $_POST['redundancy']; } else { http_response_code(400); exit("Wrong value for redundancy"); } if (is_numeric($_POST['margin']) AND $_POST['margin'] >= 0 AND $_POST['margin'] <= 1024) { $params['margin'] = $_POST['margin']; } else if (empty($_POST['margin'])) { $params['margin'] = NULL; } else { http_response_code(400); exit("Wrong value for margin"); } if (is_numeric($_POST['size']) AND $_POST['size'] >= 1 AND $_POST['size'] <= 4096) { $params['size'] = $_POST['size']; } else if (empty($_POST['size'])) { $params['size'] = NULL; } else { http_response_code(400); exit("Wrong value for size"); } if (preg_match("/^#[abcdefABCDEF0-9]{6}$/", $_POST['bgColor'])) { $params['bgColor'] = substr($_POST['bgColor'], -6); } else { http_response_code(400); exit("Wrong value for bgColor"); } if (preg_match("/^#[abcdefABCDEF0-9]{6}$/", $_POST['fgColor'])) { $params['fgColor'] = substr($_POST['fgColor'], -6); } else { http_response_code(400); exit("Wrong value for fgColor"); } $validFormSubmitted = true; $rgbBgColor = array( 'r' => hexdec(substr($params['bgColor'],0,2)), 'g' => hexdec(substr($params['bgColor'],2,2)), 'b' => hexdec(substr($params['bgColor'],4,2)), ); $qrCode = Builder::create() ->data($params['txt']); if (!is_null($params['margin'])) $qrCode->margin($params['margin']); if (!is_null($params['size'])) $qrCode->size($params['size']); if ($params['redundancy'] === "high") $qrCode->errorCorrectionLevel(new ErrorCorrectionLevelHigh()); else if ($params['redundancy'] === "quartile") $qrCode->errorCorrectionLevel(new ErrorCorrectionLevelQuartile()); else if ($params['redundancy'] === "medium") $qrCode->errorCorrectionLevel(new ErrorCorrectionLevelMedium()); else if ($params['redundancy'] === "low") $qrCode->errorCorrectionLevel(new ErrorCorrectionLevelLow()); $qrCode ->backgroundColor(new Color( $rgbBgColor['r'], $rgbBgColor['g'], $rgbBgColor['b'] )) ->foregroundColor(new Color( hexdec(substr($params['fgColor'],0,2)), hexdec(substr($params['fgColor'],2,2)), hexdec(substr($params['fgColor'],4,2)) )); try { $result = $qrCode->build(); } catch (Exception $ex) { http_response_code(500); $qrCodeAvailable = false; error_log("LibreQR encountered an error while generating a QR code: " . $ex); } } ?> LibreQR ยท <?= $loc['subtitle'] ?> 'css/', 'compress' => true); $cssFileName = Less_Cache::Get(array("style.less" => ""), $options, $colorScheme); ?> ' . "\n"; ?>

LibreQR

getDataUri(); $qrSize = $params['size'] + 2 * $params['margin']; ?>
<?= $loc[' id="qrCode" src="">
" . $loc['error_generation'] . "

"; } ?>