Файл: selemege.tk/plugins/cleaner/obmen.php
Строк: 398
<?
/*
=======================================
DCMS-Cleaner
Автор: Искатель
---------------------------------------
При распространении указывать ссылку на
оф. сайт http://dcms-fiera.ru
---------------------------------------
Контакты
ICQ: 587863132
http://dcms-fiera.ru
=======================================
*/
include_once '../../sys/inc/start.php';
include_once '../../sys/inc/compress.php';
include_once '../../sys/inc/sess.php';
include_once '../../sys/inc/home.php';
include_once '../../sys/inc/settings.php';
include_once '../../sys/inc/db_connect.php';
include_once '../../sys/inc/ipua.php';
include_once '../../sys/inc/fnc.php';
include_once '../../sys/inc/user.php';
only_reg();
if (user_access('adm_panel_show')){
$set['title'] = 'Обменник';
include_once '../../sys/inc/thead.php';
?>
<link rel="stylesheet" href="style/style.css" type="text/css" />
<?
title();
aut();
$num = 0;
$nums = 0;
$size = 0;
if(isset($_GET['del']) && $_GET['del'] == 'all')
{
/*
================================
Чистим таблицы
================================
*/
$q = mysql_query("SELECT id FROM `obmennik_files`");
while ($file = mysql_fetch_assoc($q))
{
if (!file_exists(H.'sys/obmen/files/' . $file['id'] . '.dat'))
{
// Таблицы
mysql_query("DELETE FROM `mark_files` WHERE `id_file` = '$file[id]'");
mysql_query("DELETE FROM `obmennik_komm` WHERE `id_file` = '$file[id]'");
mysql_query("DELETE FROM `obmennik_files` WHERE `id` = '$file[id]'");
$num++;
}
}
$CONF["file_types"] ='jpg|png|gif|jpeg';
/*
================================
Папка sys/obmen/screens/128/
================================
*/
$dh = opendir(H.'sys/obmen/screens/128');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
@unlink(H.'sys/obmen/screens/128/' . $real);
$num++;
}
}
/*
================================
Папка sys/obmen/screens/48/
================================
*/
$dh = opendir(H.'sys/obmen/screens/48');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
@unlink(H.'sys/obmen/screens/48/' . $real);
$num++;
}
}
/*
================================
Папка sys/obmen/screens/14/
================================
*/
$dh = opendir(H.'sys/obmen/screens/14');
while($fname = readdir($dh))
{
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
@unlink(H.'sys/obmen/screens/14/' . $real);
$num++;
}
}
/*
================================
Сравнение файлов с таблицей
obmennik_files, поиск (мертвых)
файлов, и файлов с нулевым
размером
================================
*/
$dh = opendir(H.'sys/obmen/files');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", 'dat');
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.dat', '', $fname);
$file = intval($fname);
$file_size = @filesize(H.'sys/obmen/files/' . $real);
// Сверяем файлы с таблицей
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$file'"),0) == 0 && $real != '..' && $real != '.')
{
mysql_query("DELETE FROM `mark_files` WHERE `id_file` = '$file'");
mysql_query("DELETE FROM `obmennik_komm` WHERE `id_file` = '$file'");
@unlink(H.'sys/obmen/files/' . $real);
$size = $size + @filesize(H.'sys/obmen/files/' . $real);
$num++;
}
elseif ($file_size == '0') // Проверяем файлы с нулевым размером
{
// Таблицы
mysql_query("DELETE FROM `mark_files` WHERE `id_file` = '$file'");
mysql_query("DELETE FROM `obmennik_komm` WHERE `id_file` = '$file'");
mysql_query("DELETE FROM `obmennik_files` WHERE `id` = '$file'");
@unlink(H.'sys/obmen/files/' . $real);
@unlink(H.'sys/obmen/screens/14/' . $file . '.gif');
@unlink(H.'sys/obmen/screens/48/' . $file . '.gif');
@unlink(H.'sys/obmen/screens/128/' . $file . '.gif');
@unlink(H.'sys/obmen/screens/14/' . $file . '.png');
@unlink(H.'sys/obmen/screens/48/' . $file . '.png');
@unlink(H.'sys/obmen/screens/128/' . $file . '.png');
@unlink(H.'sys/obmen/screens/14/' . $file . '.jpg');
@unlink(H.'sys/obmen/screens/48/' . $file . '.jpg');
@unlink(H.'sys/obmen/screens/128/' . $file . '.jpg');
@unlink(H.'sys/obmen/screens/14/' . $file . '.jpeg');
@unlink(H.'sys/obmen/screens/48/' . $file . '.jpeg');
@unlink(H.'sys/obmen/screens/128/' . $file . '.jpeg');
$num++;
}
}
$_SESSION['message'] = 'Папки обмена успешно очищены, удалено (' . $num . ') файлов';
header("Location: ?");
exit;
}
/*
================================
Проверка папок со скриншотами
файлов обменника, уж не знаю
почему, но разработчики dcms 6
ветки не позаботились об их
удалении =)
================================
*/
$CONF["file_types"] ='jpg|png|gif|jpeg';
echo '<div class="mess">';
echo 'В релизах DCMS 6.6.4 ветке и ее модификациях не удаляются скриншоты, после удаления файла.<br />';
/*
================================
Папка sys/obmen/screens/128/
================================
*/
$dh = opendir(H.'sys/obmen/screens/128');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
$size = $size + @filesize(H.'sys/obmen/screens/128/' . $real);
$num++;
}
}
/*
================================
Папка sys/obmen/screens/48/
================================
*/
$dh = opendir(H.'sys/obmen/screens/48');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
$size = $size + @filesize(H.'sys/obmen/screens/48/' . $real);
$num++;
}
}
/*
================================
Папка sys/obmen/screens/14/
================================
*/
$dh = opendir(H.'sys/obmen/screens/14');
while($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", $CONF['file_types']);
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.jpg', '', $fname);
$fname = str_replace('.jpeg', '', $fname);
$fname = str_replace('.png', '', $fname);
$fname = str_replace('.gif', '', $fname);
$screen = intval($fname);
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$screen'"),0) == 0 && $real != '..' && $real != '.')
{
$size = $size + @filesize(H.'sys/obmen/screens/128/' . $real);
$num++;
}
}
if ($num > 0)echo '<img src="style/icons/delete.gif" /> <font color=red>В обменнике обнаружено <b>' . $num . '</b> скриншотов для удаления. Эти файлы занимают ' . size_file($size) . ' (sys/obmen/screens/)</font>';
else
echo '<img src="style/icons/ok.gif" /> <font color=green>В папках со скриншотами все отлично</font>';
echo '</div>';
/*
=============================================
Сравнение файлов с таблицей
obmennik_files, поиск (мертвых)
файлов, и файлов с нулевым
размером
=============================================
*/
echo '<div class="mess">';
echo 'Бывают случаи когда файлы на сайт загружаются с нулевым размером, а также при удалении файлов они все же остаются на сервере, но их нет в таблицах.<br />';
$num = 0;
$dh = opendir(H.'sys/obmen/files');
while ($fname = readdir($dh)){
$file_array = explode('.', $fname);
$nums = count($file_array);
$fileres = $file_array[($nums - 1)];
$file_types = explode("|", 'dat');
if(in_array($fileres, $file_types)){
$files[] = $fname;
}
$real = $fname;
$fname = str_replace('.dat', '', $fname);
$file = intval($fname);
$file_size = @filesize(H.'sys/obmen/files/' . $real);
// Сверяем файлы с таблицей
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `obmennik_files` WHERE `id` = '$file'"),0) == 0 && $real != '..' && $real != '.')
{
$size = $size + @filesize(H.'sys/obmen/files/' . $real);
$num++;
}
elseif ($file_size == '0') // Проверяем файлы с нулевым размером
{
$num++;
}
}
if ($num > 0)
echo '<img src="style/icons/delete.gif" /> <font color=red>В обменнике обнаружено <b>' . $num . '</b> файлов для удаления. Эти файлы занимают ' . size_file($size) . ' (sys/obmen/files/)</font>';
else
echo '<img src="style/icons/ok.gif" /> <font color=green>В папках с файлами все отлично</font>';
echo '</div>';
/*
=============================================
Cравнение таблицы и файлов
Если файлов нет на сервере, но они есть в
таблице, будем чистить, ибо могут быть ошибки
из за их отсутствия
=============================================
*/
echo '<div class="mess">';
echo 'Проверка наличия файлов записанных в таблице obmennik_files.<br />';
$num = 0;
$q = mysql_query("SELECT id FROM `obmennik_files`");
while ($file = mysql_fetch_assoc($q))
{
if (!file_exists(H.'sys/obmen/files/' . $file['id'] . '.dat'))
{
$num++;
}
}
if ($num > 0)
echo '<img src="style/icons/delete.gif" /> <font color=red>В таблице обменника обнаружено <b>' . $num . '</b> записей для удаления. Эти файлы отсутствуют на вашем сервере в (sys/obmen/files/)</font>';
else
echo '<img src="style/icons/ok.gif" /> <font color=green>В таблицах файлообменника все отлично</font>';
echo '</div>';
echo '<div class="foot">';
echo '<img src="style/icons/str.gif" /> <a href="?del=all">Очистить обменник от мусора</a>';
echo '</div>';
echo '<div class="foot">';
echo '<img src="style/icons/str2.gif" /> <a href="index.php">DCMS Cleaner</a>';
echo '</div>';
include_once '../../sys/inc/tfoot.php';
}
?>