Файл: adm_group.php
Строк: 340
<?php
/**
* @author [FaNiska]
* @copyright 2009
* Загруз центр
* Предложения, идеи, вопросы и об ошибках писать в icq 65-64-538 или на mobi-m-ru@ya.ru
*/
if (function_exists('set_time_limit'))
{
set_time_limit(99999);
}
ignore_user_abort(1);
include 'inc/db_connect.php';
include 'inc/function.php';
include 'inc/set.php';
include 'inc/adm_head.php';
require 'inc/adm.php';
echo '<div class="title">Редактор группы</div>';
if (isset($_GET['id']) && isset($_GET['c']))
{
$id = valid_int($_GET['id']);
$table = clean($_GET['c']);
} else
{
echo '<div>Ошибка при выборе группы.</div>';
include 'inc/adm_foot.php';
exit();
}
$group_info = mysql_fetch_array(mysql_query('SELECT * FROM `' . $table . '` WHERE `id` = ' . $id . ' LIMIT 1'));
if (!is_dir($group_info['s_name']))
{
echo '<div>Группа не найдена.</div>';
include 'inc/adm_foot.php';
exit();
}
$group_info['r_name'] = str_replace('*', '', $group_info['r_name']);
echo '<div>Группа <b>' . $group_info['r_name'] . '</b></div>';
echo '<div class="navi"> <a href="?c=' . $table . '&id=' . $id . '&act=about">описание</a> : <a href="?c=' . $table . '&id=' . $id . '&act=files">файлы</a> : <a href="?c=' . $table . '&id=' . $id . '&act=scren">скриншот</a></div>';
if ($_GET['act'] == 'scren')
{
if (isset($_GET['podact']) && $_GET['podact'] == 'del')
{
echo '<div>Вы действительно хотите удалить текущий скриншот группы?<br />
<a href="?c=' . $table . '&id=' . $id . '&act=scren&podact=del&yes">ДА</a>|<a href="?c=' . $table . '&id=' . $id . '&act=scren">ОТМЕНА</a></div>';
if (isset($_GET['yes']))
{
$screenshot = basename($group_info['s_name']);
$screenshot = $group_info['s_name'] . '/' . $screenshot;
@unlink($screenshot . '.GIF');
@unlink($screenshot . '.PNG');
@unlink($screenshot . '.JPG');
echo '<div>Скриншот группы удален!<br />
<a href="?c=' . $table . '&id=' . $id . '&act=scren">назад</a></div>';
}
} elseif (isset($_GET['podact']) && $_GET['podact'] == 'imp')
{
if (isset($_POST['ok']) && isset($_POST['file']) && eregi("http://", $_POST['file']) && eregi('.gif$|.png$|.jpeg$|.jpg$', $_POST['file']))
{
$newfile = ereg_replace('^.*/', null, $_POST["file"]);
if (eregi('gif', $newfile))
$ras = 'GIF';
elseif (eregi('jpg', $newfile))
$ras = 'JPG';
elseif (eregi('jpeg', $newfile))
$ras = 'JPG';
elseif (eregi('png', $newfile))
$ras = 'PNG';
@chmod($group_info['s_name'] . '/', 0777);
$screenshot = basename($group_info['s_name']);
if (@copy($_POST["file"], $group_info['s_name'] . '/' . $screenshot . '.' . $ras))
{
echo '<div>Скриншот импортирован! Сохранен по адресу <b>' . $group_info['s_name'] . '/' . $screenshot . '.' . $ras . '</b></div>';
} else
{
echo '<div>Произошла ошибка. Не удалось импортировать скриншот. Возможно у папки группы cmod не 777</div>';
}
} elseif (isset($_POST['ok']) && isset($_POST['file']))
{
echo '<div>Произошла ошибка при импорте скриншота. Могут быть следующие причины:<br />
1) Вы указали не прямой путь к изображению<br />
2) Вы написали прямой адрес изображения без http://</div>';
}
echo "<form class="foot" enctype="multipart/form-data" action="" method="post">";
echo "<b>Путь к файлу скриншота</b> (с http:// и только прямой адрес изобажения):<br />n";
echo "<input name="file" type="text" /><br />n";
echo "<input class="submit" name="ok" type="submit" value="Импортировать" /><br />n";
echo "«<a href="?c=$table&id=$id&act=scren">Отмена</a><br />n";
echo "</form>";
} elseif (isset($_GET['podact']) && $_GET['podact'] == 'upl')
{
echo "<form class="foot" enctype="multipart/form-data" action="" method="post">";
if (isset($_POST['ok']))
{
if (isset($_FILES['file']) && eregi('.gif$|.png$|.jpeg$|.jpg$', $_FILES["file"]['name']) && filesize($_FILES["file"]['tmp_name']) > 0)
{
if (eregi('gif', $_FILES["file"]['name']))
$ras = 'GIF';
elseif (eregi('jpg', $_FILES["file"]['name']))
$ras = 'JPG';
elseif (eregi('jpeg', $_FILES["file"]['name']))
$ras = 'JPG';
elseif (eregi('png', $_FILES["file"]['name']))
$ras = 'PNG';
@chmod($group_info['s_name'] . '/', 0777);
$screenshot = basename($group_info['s_name']);
if (@copy($_FILES["file"]['tmp_name'], $group_info['s_name'] . '/' . $screenshot . '.' . $ras))
{
echo '<div>Скриншот выгружен! И расположился по адресу: <b>' . $group_info['s_name'] . '/' . $screenshot . '.' . $ras . '</b></div>';
} else
{
echo '<div>Ошибка! Не удалось выгрузить скриншот. Возможно у папки нет соответствующих прав (cmod 777)</div>';
}
} else
{
echo '<div>Ошибка! Файл должен иметь расширение gif, jpg или png.</div>';
}
} elseif (!isset($_POST['ok']))
{
echo "Файл (только изображение):<br />n";
echo "<input name="file" type="file" /><br />n";
echo "<input class="submit" name="ok" type="submit" value="Выгрузить" /><br />n";
echo "«<a href="?c=$table&id=$id&act=scren">Отмена</a><br />n";
echo "</form>";
}
} elseif (!isset($_GET['podact']))
{
$screenshot = basename($group_info['s_name']);
$screenshot = $group_info['s_name'] . '/' . $screenshot . '.';
if (is_file($screenshot . 'GIF'))
echo "Скриншот:<br /><img src="{$screenshot}GIF" alt="$group_info[r_name]" /><br />n";
elseif (is_file($screenshot . 'JPG'))
echo "Скриншот:<br /><img src="{$screenshot}JPG" alt="$group_info[r_name]" /><br />n";
elseif (is_file($screenshot . 'PNG'))
echo "Скриншот:<br /><img src="{$screenshot}PNG" alt="$group_info[r_name]" /><br />n";
echo '<hr /><div>
<a href="?c=' . $table . '&id=' . $id . '&act=scren&podact=del">удалить скриншот</a><br />
<a href="?c=' . $table . '&id=' . $id . '&act=scren&podact=imp">импортировать скриншот</a><br />
<a href="?c=' . $table . '&id=' . $id . '&act=scren&podact=upl">выгрузить скриншот</a><br /></div>';
}
} elseif ($_GET['act'] == 'about')
{
if (isset($_POST['r_name']) && isset($_POST['about']))
{
$name = '*' . $_POST['r_name'];
$about = $_POST['about'];
mysql_query("UPDATE `$table` SET `r_name`=" . quote_smart($name) . ", `about`=" . quote_smart($about) . " WHERE `id`=$id LIMIT 1;");
echo '<div>Название и описание изменены</div>';
}
$group_info = mysql_fetch_array(mysql_query('SELECT `r_name`, `about`, `gr_id` FROM `' . $table . '` WHERE `id` = ' . $id . ' LIMIT 1'));
$group_info['r_name'] = str_replace('*', '', $group_info['r_name']);
echo '<form action="" method="post">
Название:<br />
<input type="text" value="' . $group_info['r_name'] . '" name="r_name" /><br />';
echo 'Описание:<br />
<input type="text" value="' . $group_info['about'] . '" name="about" /><br />';
echo '<input type="submit" value="Изменить" />
</form>';
} elseif ($_GET['act'] == 'files')
{
if (isset($_GET['podact']))
{
$fid = valid_int($_GET['fid']);
$file = mysql_fetch_array(mysql_query("SELECT * FROM `$table` WHERE `id`=$fid LIMIT 1"));
if ($_GET['podact'] == 'rename')
{
if (isset($_POST['name']))
{
mysql_query("UPDATE `$table` SET `r_name`='*" . mysql_real_escape_string($_POST['name']) . "' WHERE `id`=$fid;");
echo '<div>Переименование прошло успешно. Новое название - <b>' . $_POST['name'] . '</b></div>';
} else
{
$file['r_name'] = str_replace('*', '', $file['r_name']);
echo '<form action="?c=' . $table . '&fid=' . $fid . '&podact=rename&act=files&id=' . $id . '" method="post">
Введите новое название (имя):
<input type="text" value="' . $file['r_name'] . '" name="name" />
<input type="submit" value="Изменить" />
</form>';
}
} elseif ($_GET['podact'] == 'upload')
{
$count_f = 0;
if (isset($_POST['k_forms']) && isset($_POST['ok']))
{
$k_forms = valid_int($_POST['k_forms']);
for ($i = 0; $i < $k_forms; $i++)
{
if (isset($_FILES["file_$i"]) && !eregi('^.|.php|.name$|.txt$|.opis$|.html?$|.sql$|.ini$|.db$|.dat$', $_FILES["file_$i"]['name']) && filesize($_FILES["file_$i"]['tmp_name']) > 0)
{
$newfile = retranslit(esc($_FILES["file_$i"]['name'], 1));
if (@copy($_FILES["file_$i"]['tmp_name'], $group_info['s_name'] . '/' . $newfile))
{
@chmod($group_info['s_name'] . '/' . $newfile, 0777);
$name = eregi_replace('.[^.]*$', null, $newfile); // имя файла без расширения
$pathinfo = pathinfo($group_info['s_name'] . '/' . $newfile);
$ras = $pathinfo['extension']; // Расширение файла
$size = filesize($group_info['s_name'] . '/' . $newfile); // размер файла
mysql_query("REPLACE INTO `$table` (`id_p`, `type`, `r_name`, `s_name`, `f_ras`, `folder`, `size`, `up_time`) VALUES ('$id', '2', '*" . $name . "', '" . $group_info['s_name'] . "/" . $newfile . "', '$ras', '" . $group_info['s_name'] . "', '$size', '$time');");
$count_f++;
}
}
}
echo "<div>Успешно выгруженных файлов $count_f</div>";
} else
{
if (isset($_POST['k_forms']))
$k_forms = valid_int($_POST['k_forms']);
elseif (isset($_SESSION['k_forms']))
$k_forms = valid_int($_SESSION['k_forms']);
else
$k_forms = 1;
$_SESSION['k_forms'] = $k_forms;
echo "<form class="foot" enctype="multipart/form-data" action="?c=$table&id=$id&act=files&podact=upload" method="post">";
echo "Количество выгружаемых файлов:<br />n";
echo "<input type="text" name="k_forms" value="$k_forms"/><br />n";
echo "<input class="submit" type="submit" value="Показать формы" /><br />n";
for ($i = 0; $i < $k_forms; $i++)
{
echo "Файл (" . ($i + 1) . "):<br />n";
echo "<input name="file_$i" type="file" /><br />n";
}
echo "<input class="submit" name="ok" type="submit" value="Выгрузить" /><br />n";
echo "«<a href="?c=$table&id=$id&act=files">Отмена</a><br />n";
echo "</form>";
}
} elseif ($_GET['podact'] == 'import')
{
$count_f = 0;
if (isset($_POST['k_forms']) && isset($_POST['ok']))
{
$k_forms = valid_int($_POST['k_forms']);
for ($i = 0; $i < $k_forms; $i++)
{
if (isset($_POST["file_$i"]) && isset($_POST["name_$i"]) && isset($_POST["newfile_$i"]))
{
if ($_POST["newfile_$i"] == null || empty($_POST["newfile_$i"]))
{
$newfile = ereg_replace('^.*/', null, $_POST["file_$i"]);
} else
{
$newfile = $_POST["newfile_$i"];
}
if (ereg('^[^/]*.[^/]*$', $newfile) && !ereg('^.|.php|.name$|.txt$|.opis$|.html?$|.sql$|.ini$|.db$|.dat$', $newfile) && @copy($_POST["file_$i"], $group_info['s_name'] . '/' . $newfile))
{
@chmod($group_info['s_name'] . '/' . $newfile, 0777);
if ($_POST["name_$i"] != null)
$name = eregi_replace('.[^.]*$', null, $_POST["name_$i"]);
else
$name = eregi_replace('.[^.]*$', null, $newfile); // имя файла без расширения
$pathinfo = pathinfo($group_info['s_name'] . '/' . $newfile);
$ras = $pathinfo['extension']; // Расширение файла
$size = filesize($group_info['s_name'] . '/' . $newfile); // размер файла
mysql_query("REPLACE INTO `$table` (`id_p`, `type`, `r_name`, `s_name`, `f_ras`, `folder`, `size`, `up_time`) VALUES ('$id', '2', " . quote_smart($name) . ", '" . $group_info['s_name'] . "/" . $newfile . "', '$ras', '" . $group_info['s_name'] . "', '$size', '$time');");
$count_f++;
}
}
}
echo "<div>Успешно импортированных файлов $count_f</div>";
} else
{
if (isset($_POST['k_forms']))
$k_forms = valid_int($_POST['k_forms']);
elseif (isset($_SESSION['k_forms']))
$k_forms = valid_int($_SESSION['k_forms']);
else
$k_forms = 1;
$_SESSION['k_forms'] = $k_forms;
echo "<form class="foot" enctype="multipart/form-data" action="?c=$table&id=$id&act=files&podact=import" method="post">";
echo "Количество импортируемых файлов:<br />n";
echo "<input type="text" name="k_forms" value="$k_forms"/><br />n";
echo "<input class="submit" type="submit" value="Показать формы" /><br />n";
for ($i = 0; $i < $k_forms; $i++)
{
echo "<b>Путь к файлу (" . ($i + 1) . ")</b> (с http://):<br />n";
echo "<input name="file_$i" type="text" /><br />n";
echo "Сохранить как (не обязательно):<br />n";
echo "<input name="newfile_$i" type="text" /><br />n";
echo "Название в загрузках (не обязательно):<br />n";
echo "<input name="name_$i" type="text" /><br />n";
}
echo "<input class="submit" name="ok" type="submit" value="Импортировать" /><br />n";
echo "«<a href="?c=$table&id=$id&act=files">Отмена</a><br />n";
echo "</form>";
echo "<div><b>1)</b> <u>Путь к файлу</u> - нужно ввести полный прямой(!) адрес к файлу начиная с http://<br /> <b>2)</b> <u>Сохранить как</u> - нужно ввести новое имя файла с расширением, под которым он сохранится на сервере (Н-р: video.3gp , java_game.jar, proga.sis и т.д.). Если не понимаете, вводить это не обязательно.<br /><b>3)</b> <u>Название в загрузках</u> - новое название, с которым файл будет отображаться в загруз центре. Вводить не обязательно, т.к. это название можно изменить и после.</div>";
}
} elseif ($_GET['podact'] == 'delete')
{
if (isset($_GET['fid']))
{
$fid = valid_int($_GET['fid']);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `$table` WHERE `id` = '$fid' && `type` = '2'"), 0) == 0)
{
echo '<div>Ошибка! Выбранный вами файл не найден в базе.</div>';
} elseif (isset($_GET['yes']))
{
if ($_GET['yes'] == 1)
{
mysql_query("DELETE FROM `$table` WHERE `id` = $fid LIMIT 1;");
echo '<div>Файл успешно удален из базы.</div>';
} elseif ($_GET['yes'] == 2)
{
$file = mysql_fetch_array(mysql_query("SELECT `s_name`, `f_ras` FROM `$table` WHERE `id`=$fid"));
$gif = str_replace(".$file[f_ras]", '.GIF', $file['s_name']);
$jpg = str_replace(".$file[f_ras]", '.JPG', $file['s_name']);
$png = str_replace(".$file[f_ras]", '.PNG', $file['s_name']);
mysql_query("DELETE FROM `$table` WHERE `id` = $fid LIMIT 1;");
@unlink($file['s_name']);
@unlink($gif);
@unlink($jpg);
@unlink($png);
echo '<div>Файл успешно удален из базы и с сервера.</div>';
} else
{
echo '<div>Ошибка при выборе метода удаления.</div>';
}
} else
{
echo '<div><b>Вы действительно хотите удалить файл? Сделайте выбор.</b><br />
<a href="?c=' . $table . '&id=' . $id . '&act=files&fid=' . $fid . '&podact=delete&yes=1">Удалить только с базы</a> | <a href="?c=' . $table . '&id=' . $id . '&act=files&fid=' . $fid . '&podact=delete&yes=2">Удалить и с базы, и сервера</a> | <a href="?c=' . $table . '&id=' . $id . '&act=files">отмена</a></div>';
}
}
}
}
$s = mysql_query("SELECT * FROM `$table` WHERE `id_p`=$id");
$i = 0;
echo '<table border="1" width="100%">';
while ($list = mysql_fetch_array($s))
{
$i++;
$list['r_name'] = str_replace('*', '', $list['r_name']);
echo "<tr><td>[$i] [$list[f_ras]] - $list[r_name] (" . size_file($list['size']) . ") </td><td> <a href='?c=$table&id=$id&act=files&fid=$list[id]&podact=rename'>переим.</a> : <a href='?c=$table&id=$id&act=files&fid=$list[id]&podact=delete'>удалить</a></td></tr>";
}
echo '</table><br />';
echo '<div><a href="?c=' . $table . '&id=' . $id . '&act=files&podact=upload">Загрузить файл</a> : <a href="?c=' . $table . '&id=' . $id . '&act=files&podact=import">Импортировать файл</a> : </div><hr />';
}
include 'inc/adm_foot.php';
?>