<?php
/*
LogoGen by Magistr v1.0.0
Автор: Magistr
Сайт: http://interda.wen.ru
ICQ: 237352
E-mail: wap-help[ряв!]yandex.ru
*/
//==================================================//
include_once 'config.php'; # Инклюдим настройки
//==================================================//
// Прием данных, переданных через POST с формы
$text = $_POST['text']; # текст надписи
$turn = $_POST['turn']; # угол поворота
$size = $_POST['size']; # размер шрифта
$v_bgcolor = $_POST['v_bgcolor']; # формат цвета фона
// если выбран формат цвета фона #rrggbb, то получить только переменную $bgcolor_rrggbb ($bgcolor_r, $bgcolor_g, $bgcolor_b - не получать)
if ($v_bgcolor == 'rrggbb') {
$bgcolor_rrggbb = $_POST['bgcolor_rrggbb']; # цвет фона в формате #rrggbb
};
// если выбран формат цвета фона r,g,b, то получить только переменные $bgcolor_r, $bgcolor_g, $bgcolor_b ($bgcolor_rrggbb - не получать)
if ($v_bgcolor == 'rgb') {
$bgcolor_r = $_POST['bgcolor_r']; # уровень красного цвета фона в формате r,g,b
$bgcolor_g = $_POST['bgcolor_g']; # уровень зеленого цвета фона в формате r,g,b
$bgcolor_b = $_POST['bgcolor_b']; # уровень синего цвета фона в формате r,g,b
};
$v_txtcolor = $_POST['v_txtcolor']; # формат цвета текста
// если выбран формат цвета текста #rrggbb, то получить только переменную $txtcolor_rrggbb ($txtcolor_r, $txtcolor_g, $txtcolor_b - не получать)
if ($v_txtcolor == 'rrggbb') {
$txtcolor_rrggbb = $_POST['txtcolor_rrggbb']; # цвет текста в формате #rrggbb
};
// если выбран формат цвета текста r,g,b, то получить только переменные $txtcolor_r, $txtcolor_g, $txtcolor_b ($txtcolor_rrggbb - не получать)
if ($v_txtcolor == 'rgb') {
$txtcolor_r = $_POST['txtcolor_r']; # уровень красного цвета текста в формате r,g,b
$txtcolor_g = $_POST['txtcolor_g']; # уровень зеленого цвета текста в формате r,g,b
$txtcolor_b = $_POST['txtcolor_b']; # уровень синего цвета текста в формате r,g,b
};
$font = $_POST['font']; # шрифт
$format = $_POST['format']; # формат изображения
// если формат изображения PNG, то получить только переменную $transparency ($quality - не получать)
if ($format == 'png') {
$transparency = $_POST['transparency']; # уровень прозрачности для PNG
};
// если формат изображения JPEG, то получить только переменную $quality ($transparency - не получать)
if ($format == 'jpeg') {
$quality = $_POST['quality']; # уровень качества для JPEG
};
//==================================================//
// Производим преобразование спецсимволов в их HTML эквиваленты и удаление обратных слэшей
$text = stripslashes(htmlspecialchars ($text));
$turn = stripslashes (htmlspecialchars ($turn));
$size = stripslashes (htmlspecialchars ($size));
$v_bgcolor = stripslashes (htmlspecialchars ($v_bgcolor));
if ($v_bgcolor == 'rrggbb') {
$bgcolor_rrggbb = stripslashes (htmlspecialchars ($bgcolor_rrggbb));
};
if ($v_bgcolor == 'rgb') {
$bgcolor_r = stripslashes (htmlspecialchars ($bgcolor_r));
$bgcolor_g = stripslashes (htmlspecialchars ($bgcolor_g));
$bgcolor_b = stripslashes (htmlspecialchars ($bgcolor_b));
};
$v_txtcolor = stripslashes (htmlspecialchars ($v_txtcolor));
if ($v_txtcolor == 'rrggbb') {
$txtcolor_rrggbb = stripslashes (htmlspecialchars ($txtcolor_rrggbb));
};
if ($v_txtcolor == 'rgb') {
$txtcolor_r = stripslashes (htmlspecialchars ($txtcolor_r));
$txtcolor_g = stripslashes (htmlspecialchars ($txtcolor_g));
$txtcolor_b = stripslashes (htmlspecialchars ($txtcolor_b));
};
$font = stripslashes (htmlspecialchars ($font));
$format = stripslashes (htmlspecialchars ($format));
if ($format == 'png') {
$transparency = stripslashes (htmlspecialchars ($transparency));
};
if ($format == 'jpeg') {
$quality = stripslashes (htmlspecialchars ($quality));
};
//==================================================//
// Проверяем, все ли поля заполнены, всё ли выбрано
if ($text == '') {$error[1] = 'Не введен текст надписи!';};
if ($turn == '') {$error[2] = 'Не выбран угол поворота!';};
if ($size == '') {$error[3] = 'Не выбран размер шрифта!';};
if ($v_bgcolor == '') {$error[4] = 'Не выбран формат цвета фона!';};
if ($v_bgcolor == 'rrggbb') {
if ($bgcolor_rrggbb == '') {$error[5] = 'Не выбран цвет фона в формате #rrggbb!';};
};
if ($v_bgcolor == 'rgb') {
if ($bgcolor_r == '') {$error[6] = 'Не выбран уровень красного цвета фона в формате r,g,b!';};
if ($bgcolor_g == '') {$error[7] = 'Не выбран уровень зеленого цвета фона в формате r,g,b!';};
if ($bgcolor_b == '') {$error[8] = 'Не выбран уровень синего цвета фона в формате r,g,b!';};
};
if ($v_txtcolor == '') {$error[9] = 'Не выбран формат цвета текста!';};
if ($v_txtcolor == 'rrggbb') {
if ($txtcolor_rrggbb == '') {$error[10] = 'Не выбран цвет текста в формате #rrggbb!';};
};
if ($v_txtcolor == 'rgb') {
if ($txtcolor_r == '') {$error[11] = 'Не выбран уровень красного цвета текста в формате r,g,b!';};
if ($txtcolor_g == '') {$error[12] = 'Не выбран уровень зеленого цвета текста в формате r,g,b!';};
if ($txtcolor_b == '') {$error[13] = 'Не выбран уровень синего цвета текста в формате r,g,b!';};
};
if ($font == '') {$error[14] = 'Не выбран шрифт!';};
if ($format == '') {$error[15] = 'Не выбран формат изображения!';};
if ($format == 'png') {
if ($transparency == '') {$error[16] = 'Не выбран уровень прозрачности для PNG!';};
};
if ($format == 'jpeg') {
if ($quality == '') {$error[17] = 'Не выбран уровень качества для JPEG!';};
};
// Если есть ошибки, то выводим их на экран и прекращаем дальнейшие действия
if ($error) {
include_once 'head.php';
echo '<p>';
echo "\n";
for ($n == 1; $n <18; $n++) {
if ($error[$n]) {
echo $error[$n];
echo '<br>';
echo "\n";
};
};
echo '</p>';
echo "\n";
echo '<p align="center">';
echo "\n";
echo '<a href="index.php">Назад</a><br>';
echo "\n";
echo '</p>';
echo "\n";
include_once 'footer.php';
exit;
};
//==================================================//
// Проверка данных с помощью регулярных выражений
// (в полях ввода проверяем допустимые символы, при выборе строгое соответствие возможным вариантам);
//проверка максимальной и минимальной длины;
// проверка действительности существования выбранного шрифта
if (preg_match ('/[^0-9a-zA-Z.]/', $text)) {$error[1] = 'Вы ввели запрещенные символы в поле текста надписи!';};
if (preg_match ('/[^0-9]/', $turn)) {$error[2] = 'Непраильный угол поворота!';};
if (preg_match ('/[^0-9]/', $size)) {$error[3] = 'Неправильный размер шрифта!';};
if (!preg_match ('/^rgb$|^rrggbb$/', $v_bgcolor)) {$error[4] = 'Неправильный формат цвета фона!';};
if ($v_bgcolor == 'rrggbb') {
if (strlen($bgcolor_rrggbb) !== 6) {$error[5] = 'Неправильный цвет фона в формате #rrggbb!';};
if (preg_match ('/[^0-9a-fA-F]/', $bgcolor_rrggbb)) {$error[5] = 'Неправильный цвет фона в формате #rrggbb!';};
};
if ($v_bgcolor == 'rgb') {
if (strlen ($bgcolor_r) > 3) {$error[6] = 'Неправильный уровень красного цвета фона в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $bgcolor_r)) {$error[6] = 'Неправильный уровень красного цвета фона в формате r,g,b!';};
if (strlen ($bgcolor_g) > 3) {$error[7] = 'Неправильный уровень зеленого цвета фона в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $bgcolor_g)) {$error[7] = 'Неправильный уровень зеленого цвета фона в формате r,g,b!';};
if (strlen ($bgcolor_b) > 3) {$error[8] = 'Неправильный уровень синего цвета фона в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $bgcolor_b)) {$error[8] = 'Неправильный уровень синего цвета фона в формате r,g,b!';};
};
if (!preg_match ('/^rgb$|^rrggbb$/', $v_txtcolor)) {$error[9] = 'Неправильный формат цвета текста!';};
if ($v_txtcolor == 'rrggbb') {
if (strlen($txtcolor_rrggbb) !== 6) {$error[10] = 'Неправильный цвет текста в формате #rrggbb!';};
if (preg_match ('/[^0-9a-fA-F]/', $txtcolor_rrggbb)) {$error[10] = 'Неправильный цвет текста в формате #rrggbb!';};
};
if ($v_txtcolor == 'rgb') {
if (strlen ($txtcolor_r) > 3) {$error[11] = 'Неправильный уровень красного цвета текста в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $txtcolor_r)) {$error[11] = 'Неправильный уровень красного цвета текста в формате r,g,b!';};
if (strlen ($txtcolor_g) > 3) {$error[12] = 'Неправильный уровень зеленого цвета текста в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $txtcolor_g)) {$error[12] = 'Неправильный уровень зеленого цвета текста в формате r,g,b!';};
if (strlen ($txtcolor_b) > 3) {$error[13] = 'Неправильный уровень синего цвета текста в формате r,g,b!';};
if (preg_match ('/[^0-9]/', $txtcolor_b)) {$error[13] = 'Неправильный уровень синего цвета текста в формате r,g,b!';};
};
if (strlen ($font) > 60) {$error[14] = 'Неправильный выбор шрифта!';};
if (preg_match ('/[^0-9a-zA-Z._-]/', $font)) {$error[14] = 'Неправильный выбор шрифта!';};
if (!preg_match ('/^gif$|^jpeg$|^png$/', $format)) {$error[15] = 'Неправильный выбор формата изображения!';};
if ($format == 'png') {
if (preg_match ('/[^0-9]/', $transparency)) {$error[16] = 'Неправильный уровень прозрачности для PNG!';};
};
if ($format == 'jpeg') {
if (preg_match ('/[^0-9]/', $quality)) {$error[17] = 'Неправильный уровень качества для JPEG!';};
};
$dir = opendir ($dir_fonts);
while ($file = readdir ($dir)) {
$file = str_replace ('.ttf', '', $file);
if ($font == $file) {$font_found = true;};
};
if (!$font_found) {$error[14] = 'Такого шрифта не существует!';};
closedir ($dir);
// Если есть ошибки, то выводим их на экран и прекращаем дальнейшие действия
if ($error) {
include_once 'head.php';
echo '<p>';
echo "\n";
for ($n == 1; $n <18; $n++) {
if ($error[$n]) {
echo $error[$n];
echo '<br>';
echo "\n";
};
};
echo '</p>';
echo "\n";
echo '<p align="center">';
echo "\n";
echo '<a href="index.php">Назад</a><br>';
echo "\n";
echo '</p>';
echo "\n";
include_once 'footer.php';
exit;
};
//==================================================//
// Обрезаем длинные строки и регулирум минимальные максимальные значения
$text = substr($text, 0, $text_symbols_max);
if ($turn >= 360) {$turn = $turn - (360 * floor($turn/360));};
if ($size < 1) {$size = 1;};
if ($size > $size_max) {$size = $size_max;};
if ($transparency > 127) {$transparency = 127;};
if ($quality > 100) {$quality = 100;};
if ($bgcolor_r > 255) {$bgcolor_r = 255;};
if ($bgcolor_g > 255) {$bgcolor_g = 255;};
if ($bgcolor_b > 255) {$bgcolor_b = 255;};
if ($txtcolor_r > 255) {$txtcolor_r = 255;};
if ($txtcolor_g > 255) {$txtcolor_g = 255;};
if ($txtcolor_b > 255) {$txtcolor_b = 255;};
//==================================================//
// Формируем ссылку на изображение
if ($v_bgcolor == 'rrggbb') {$a = '&bgcolor_rrggbb='.$bgcolor_rrggbb;};
if ($v_bgcolor == 'rgb') {$a = '&bgcolor_r='.$bgcolor_r.'&bgcolor_g='.$bgcolor_g.'&bgcolor_b='.$bgcolor_b;};
if ($v_txtcolor == 'rrggbb') {$b = '&txtcolor_rrggbb='.$txtcolor_rrggbb;};
if ($v_txtcolor == 'rgb') {$b = '&txtcolor_r='.$txtcolor_r.'&txtcolor_g='.$txtcolor_g.'&txtcolor_b='.$txtcolor_b;};
if ($format == 'jpeg') {$c = '&quality='.$quality;};
if ($format == 'png') {$c = '&transparency='.$transparency;};
$image = 'image.php?text='.$text.'&turn='.$turn.'&size='.$size.'&font='.$font.'&v_bgcolor='.$v_bgcolor.'&v_txtcolor='.$v_txtcolor.'&format='.$format.$a.$b.$c;
//==================================================//
include_once 'head.php';
?>
<p align="center">
<img src="<?php echo $image ?>" alt="picture"><br>
<a href="<?php echo $image ?>">Скачать</a><br>
<a href="index.php">Назад</a><br>
</p>
<?php
include_once 'footer.php';
?>