Файл: pages/load/screen.php
Строк: 82
<?php
include "../../system/mysql.php";
include "../../system/sys_func.php";
if (!isset($_GET['id']) || isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM load_file WHERE id = '". intval($_GET['id']) ."'"), 0) == 0) {
header("location: /pages/load/");
exit;
}
$file = mysql_fetch_assoc(mysql_query("SELECT * FROM load_file WHERE id = '". intval($_GET['id']) ."' LIMIT 1"));
if(!isset($user) || isset($user) && $user['position'] != "admin" && $file['id_user'] != $user['id']) {
header("location: file.php?id=". $file['id'] ."");
exit;
}
switch($_GET['act']) {
case del:
if(!isset($_GET['screen']) || mysql_result(mysql_query("SELECT COUNT(*) FROM load_screen WHERE id = '".intval($_GET['screen'])."' AND id_file = '". $file['id'] ."'"), 0) == 0) {
header("location: ?id=". $file['id'] ."");
exit;
}
if (isset($_POST['submit'])) {
$id = intval($_GET['screen']);
unlink("screen/". $id .".gif");
unlink("screen/mini/". $id .".gif");
mysql_query("DELETE FROM load_screen WHERE id = '". $id ."' LIMIT 1");
header("location: ?id=". $file['id'] ."");
exit;
}
$title = "Загрузки / Удаление скриншота";
include "../../system/head.php";
echo "<div class='title'><a href='/pages/load/'>Загрузки</a> / Удаление скриншота</div>";
echo "<form method='post'>";
echo "Удалить скриншот?<br/>";
echo "<input type='submit' name='submit' value='Да'/> <a href='?id=". $file['id'] ."'>Нет</a><br/>";
echo "</form>";
foot();
exit;
break;
case add:
$error = false;
$errort = '';
if (isset($_POST['submit'])) {
$name = $_FILES['img']['name'];
$ext = strtolower(strrchr($name, "."));
$size = $_FILES['img']['size'];
$list = array(".gif", ".png", ".jpg");
if (!isset($_FILES['img'])) {
$error = true;
$errort .= '<div class="err">Выберите изображение</div>';
} elseif(preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, $list)) {
$error = true;
$errort .= '<div class="err">Можно загружать только изображения</div>';
} elseif($size > 1048576) {
$error = true;
$errort .= '<div class="err">Большой размер изображения</div>';
} else {
mysql_query("INSERT INTO load_screen SET id_file = '".$file['id']."', ext = '".$ext."'");
$id = mysql_insert_id();
copy($_FILES['img']['tmp_name'], "screen/".$id.".gif");
$source = "screen/".$id.".gif"; //наш исходник
$height = "50"; //параметр высоты превью
$width = "50"; //параметр ширины превью
$rgb = "0xffffff"; //цвет заливки несоответствия
$size = getimagesize($source);//узнаем размеры картинки (дает нам масив size)
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1)); //определяем тип файла
$icfunc = "imagecreatefrom" . $format; //определение функции соответственно типу файла
if (!function_exists($icfunc)) return false; //если нет такой функции прекращаем работу скрипта
$x_ratio = $width / $size[0]; //пропорция ширины будущего превью
$y_ratio = $height / $size[1]; //пропорция высоты будущего превью
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio); //соотношения ширины к высоте
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio); //ширина превью
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio); //высота превью
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2); //расхождение с заданными параметрами по ширине
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2); //расхождение с заданными параметрами по высоте
$img = imagecreatetruecolor($width,$height); //создаем вспомогательное изображение пропорциональное превью
imagefill($img, 0, 0, $rgb); //заливаем его…
$photo = $icfunc($source); //достаем наш исходник
imagecopyresampled($img, $photo, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]); //копируем на него нашу превью с учетом расхождений
imagejpeg($img, "screen/mini/".$id.".gif"); //выводим результат (превью картинки)
// Очищаем память после выполнения скрипта
imagedestroy($img);
imagedestroy($photo);
header("location: ?id=".$file['id']."");
exit;
}
}
$title = "Загрузки / Добавление скриншота";
include "../../system/head.php";
echo "<div class='title'><a href='/pages/load/'>Загрузки</a> / Добавление скриншота </div>";
echo $errort;
echo "<form method='post' enctype='multipart/form-data'>";
echo "Выберите изображение:<br/><input type='file' name='img'/><br/>";
echo "<input type='submit' name='submit' value='Добавить'/><br/>";
echo "</form>";
echo "<a class='link' href='?id=". $file['id'] ."'>← Назад</a>";
foot();
exit;
break;
}
$title = "Загрузки / Управление скринами";
include "../../system/head.php";
echo "<div class='title'><a href='/pages/load/'>Загрузки</a> / Управление скриншотами</div>";
$query = mysql_query("SELECT * FROM load_screen WHERE id_file = '". $file['id'] ."' ORDER BY id ASC");
if (mysql_num_rows($query) == 0) {
echo "<div class='post'>Нет скриншотов</div>";
} else {
echo "<div class='post'>";
while ($screen = mysql_fetch_assoc($query)) {
echo "<a href='?id=". $file['id'] ."&act=del&screen=". $screen['id'] ."'><img src='screen/mini/". $screen['id'] .".gif' alt=''/></a> ";
}
echo "</div>";
}
echo "<a class='link' href='?id=". $file['id'] ."&act=add'><img src='/design/imgs/add.png' alt=''/> Добавить скриншот</a>";
echo "<a class='link' href='file.php?id=". $file['id'] ."'>← Назад</a>";
foot();
?>