Просмотр файла LogoGen/result.php

Размер файла: 14.23Kb
<?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 = '&amp;bgcolor_rrggbb='.$bgcolor_rrggbb;};
	if ($v_bgcolor == 'rgb') {$a = '&amp;bgcolor_r='.$bgcolor_r.'&amp;bgcolor_g='.$bgcolor_g.'&amp;bgcolor_b='.$bgcolor_b;};
	if ($v_txtcolor == 'rrggbb') {$b = '&amp;txtcolor_rrggbb='.$txtcolor_rrggbb;};
	if ($v_txtcolor == 'rgb') {$b = '&amp;txtcolor_r='.$txtcolor_r.'&amp;txtcolor_g='.$txtcolor_g.'&amp;txtcolor_b='.$txtcolor_b;};
	if ($format == 'jpeg') {$c = '&amp;quality='.$quality;};
	if ($format == 'png') {$c = '&amp;transparency='.$transparency;};
	$image = 'image.php?text='.$text.'&amp;turn='.$turn.'&amp;size='.$size.'&amp;font='.$font.'&amp;v_bgcolor='.$v_bgcolor.'&amp;v_txtcolor='.$v_txtcolor.'&amp;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';
?>