<?php
include_once '../sys/inc/start.php';
include_once '../sys/inc/sess.php';
include_once '../sys/inc/compress.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_level(4);
@include_once '../sys/inc/db_conf.php';
$set['title'] = "PhpMyAdmin";
include_once '../sys/inc/thead.php';
title();
err();
if(($ob === '')||($om === 2)||($om === 3)) {
if(($om === 2)&&(isset($_POST['newdb']))) {
$newdb = trim($_POST['newdb']);
if(@preg_match('~^[[:print:]]{1,64}$~i', $newdb)) {
if(@mysql_query('CREATE DATABASE '.$newdb.'')) {
echo '<u>База данных</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($newdb, ENT_QUOTES)).'<br/>успешно создана!<br/>';
} else { echo '<p class="err">';
echo '<u>База данных</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($newdb, ENT_QUOTES)).'<br/>не была создана.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
} } else {
echo '<p class="err">Недопустимое имя для базы данных или его длинна более 64 символов!</p>';
}
unset($newdb);
echo '---<br/>'; }
if(($om === 3)&&($cnms >= 1)&&($onms !== '')) {
$tq = 0; $fq = 0;
for($q = 0; $q < $cnms; $q++) {
if(@mysql_query('DROP DATABASE '.$onms[$q].'')) {
$tq++; } else {
$fq++;
echo '<p class="err"><u>База данных</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($onms[$q], ENT_QUOTES)).'<br/>не была удалена.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>---<br/>';
} }
if($tq === $cnms) {
if($cnms > 1) {
$bas = '<u>'.$tq.'</u> баз данных';
} else {
$bas = 'базы данных<br/><u>'.str_replace('$', '&#036;', htmlspecialchars($onms[0], ENT_QUOTES)).'</u>';
}
echo '<p class="msg">Запрос на удаление<br/>'.$bas.'<br/>успешно выполнен!</p>---<br/>';
}
unset($onms); }
if($shdbs = @mysql_query('SHOW DATABASES')) {
$alldbs = @mysql_num_rows($shdbs);
if($alldbs >= 1) {
echo '<u>Баз данных</u>: '.$alldbs.'<br/>---<br/>';
}
$allpgs = ceil($alldbs/ONPAGE);
if($obp > $allpgs) {
$obp = $allpgs; }
$otb = intval($obp * ONPAGE - ONPAGE);
if($otb < 0) {
$otb = 0; }
$dob = intval($otb + ONPAGE);
if($dob > $alldbs) {
$dob = $alldbs; }
echo '</p>'.
'<form action="?r='.$r.'" method="post">'.
'<p align="left">'.
'<input type="hidden" name="h" value="'.$rh.'"/>'.
'<input type="hidden" name="u" value="'.$ru.'"/>'.
'<input type="hidden" name="p" value="'.$rp.'"/>';
if($alldbs >= 1) {
for($n = $otb; $n < $dob; $n++) {
$bnm = @mysql_result($shdbs, $n, 0);
echo '<input type="checkbox" name="nms[]" value="'.rawurlencode($bnm).'"/> '.
'<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;b='.rawurlencode($bnm).'&amp;m=1&amp;bp='.$obp.'" style="font-weight:bold">'.str_replace('$', '&#036;', htmlspecialchars($bnm, ENT_QUOTES)).'</a><br/>';
} } else {
echo '<p class="msg">Баз данных пока нет.</p>';
}
echo '---<br/>';
if($allpgs > 1) {
echo 'Стр.: <u>'.$obp.'/'.$allpgs.'</u><br/>';
if($obp > 1) {
echo '[<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;m=1&amp;bp='.($obp - 1).'">&lt;&lt;</a>]';
}
if($obp < $allpgs) {
echo '[<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;m=1&amp;bp='.($obp + 1).'">&gt;&gt;</a>]';
}
echo '<br/>';
if($allpgs > 2) {
echo '<input type="text" name="bp" size="4" maxlength="4" value="'.$obp.'"/><br/>';
} else {
echo '<input type="hidden" name="bp" value="'.$obp.'"/>';
} }
echo '<u>Новая база</u>:<br/>'.
'<input name="newdb" type="text" value="" /><br/>'.
'<u><b>Действие</b>:</u><br/>'.
'<select name="m">'.
'<option value="2" selected="selected">создать Б.Д.</option>';
if($allpgs > 2) {
echo '<option value="1">перейти</option>';
}
if($alldbs >= 1) {
echo '<option value="3">удалить Б.Д.</option>';
}
echo '</select><br/>';
echo '<input type="submit" value="Выполнить!"/>'.
'</p></form>'.
'<p align="left">';
} else {
echo '<p class="err">Просмотр списка баз данных невозможен.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
} } else {
$gots = 1;
echo '<u>База данных</u>:<br/><span class="db">'.str_replace('$', '&#036;', htmlspecialchars($ob, ENT_QUOTES)).'</span><br/>';
if(($om === 4)&&(isset($_POST['sql']))) {
echo '---<br/>';
$sql = trim($_POST['sql']);
if(isset($_POST['yes'])) {
$sql = trim(@base64_decode($sql));
if(@preg_match('~^[[:print:]]{1,1020}(\.sql|\.txt)$~i', $sql)) {
if(@filetype($sql) === 'file') {
if($data = @file_get_contents($sql)) {
@preg_match_all('~((DROP.+\;)|(CREATE.+\).*\;)|(INSERT.+\)\s*\;(\r|\n)))~isU', $data."\n", $matches);
$ct = count($matches[0]);
if($ct >= 1) {
$tq = 0; $fq = 0;
for($q = 0; $q < $ct; $q++) {
$query = trim($matches[0][$q]);
if(@mysql_query($query)) {
$tq++; } else {
$fq++;
echo '<p class="err"><u>Ошибка в запросе</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($query, ENT_QUOTES)).'<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>---<br/>';
} }
if($tq === $ct) {
echo '<p class="msg">Импорт таблиц<br/>успешно выполнен!</p>---<br/>';
}
echo 'Запросов: <u>'.$ct.'</u><br/>Успешных: <u>'.$tq.'</u><br/>С ошибкой: <u>'.$fq.'</u><br/>';
} else {
echo '<p class="off"><u>Запросов типа</u>:<br/>DROP, CREATE, INSERT<br/>в файле нет.</p>';
}
unset($data);
unset($matches);
} else {
echo '<p class="err"><u>Ошибка импорта.</u></p>';
} } else {
echo '<p class="err">Файл не является<br/>обычным файлом<br/>или не был найден.</p>';
}
@clearstatcache();
} else {
echo '<p class="off">Возможно в адресе недопустимые символы или его длинна более 1024.<br/>Возможно расширение файла не &quot;.sql&quot; и не &quot;.txt&quot;.</p>';
} } else {
if($sql !== '') {
echo '<p class="on">Подтверждаем<br/>импорт таблиц?</p>---</p>'.
'<form action="?r='.$r.'" method="post">'.
'<p align="left">'.
'<input type="hidden" name="h" value="'.$rh.'"/>'.
'<input type="hidden" name="u" value="'.$ru.'"/>'.
'<input type="hidden" name="p" value="'.$rp.'"/>'.
'<input type="hidden" name="b" value="'.$rb.'"/>'.
'<input type="hidden" name="m" value="4"/>'.
'<input type="hidden" name="bp" value="'.$obp.'"/>'.
'<input type="hidden" name="tp" value="'.$otp.'"/>'.
'<input type="hidden" name="sql" value="'.@base64_encode($sql).'"/>'.
'<input type="hidden" name="yes" value="yes"/>'.
'<input type="submit" value="Да, выполнить!"/>'.
'</p></form>'.
'<p align="left">';
} else {
echo '<p class="off">Строка адреса<br/>SQL - таблиц<br/>была пуста.</p>';
} }
unset($sql); }
elseif(($om === 5)&&((($cnms >= 1)&&($onms !== ''))||($oall === 1))) {
echo '---<br/>';
if($oall === 1) {
$onms = array();
if($shts = @mysql_query('SHOW TABLES FROM '.$ob.'')) {
while($tnm = @mysql_fetch_row($shts)) {
$onms[] = $tnm[0];
} } }
$ct = count($onms);
if($ct >= 1) {
$dump = '';
$d = 0; $v = 0;
for($n = 0; $n < $ct; $n++) {
$shcr = @mysql_query('SHOW CREATE TABLE '.$onms[$n].'');
$rwcr = @mysql_fetch_row($shcr);
$dump .= 'DROP TABLE IF EXISTS `'.$onms[$n].'`;'."\r\n";
$dump .= @strtr(@preg_replace('~[\s]+~', ' ', $rwcr[1]), @array("( "=>"(\r\n", ", "=>",\r\n", ") )"=>")\r\n)")).";\r\n\r\n";
$st = @mysql_query('SELECT * FROM '.$onms[$n].'');
$nr = @mysql_num_rows($st);
$nf = @mysql_num_fields($st);
$wi = 0;
while($rowi = @mysql_fetch_row($st)) {
$in = 'INSERT INTO `'.$onms[$n].'` VALUES (';
for($i = 0; $i < $nf; $i++) {
if($rowi[$i] === NULL) {
$in .= 'NULL'; }
elseif($rowi[$i] !== '') {
$ft = @mysql_field_type($st, $i);
if(($ft === 'tinyint')||($ft === 'smallint')||($ft === 'mediumint')||($ft === 'int')||($ft === 'integer')||($ft === 'bigint')) {
$in .= $rowi[$i];
} else {
$in .= '\''.$rowi[$i].'\'';
} } else {
$in .= '\'\''; }
if($i < $nf - 1) {
$in .= ', '; } }
$in .= ');'."\r\n";
$dump .= $in;
unset($in);
if($wi === $nr - 1) {
$dump .= "\r\n"; }
$wi++; }
$d++; $v += $wi; }
if($ct > 1) {
$backupnm = $ob;
} else {
$backupnm = $onms[0];
}
if($fp = @fopen(BACKUPDR.'/'.$backupnm.'.txt', 'wb')) {
$w = @fwrite($fp, $dump);
if($w !== -1) {
if(($w >= 0)&&($w < 1024)) {
$wr = @round($w/1000, 3).' Kb';
}
elseif(($w >= 1024)&&($w < 1048576)) {
$wr = @round($w/1024, 3).' Kb';
}
elseif($w > 1048576) {
$wr = @round($w/1024/1024, 3).' Mb';
} else { $wr = '--'; }
if($ct > 1) {
$tabl = ''; } else {
$tabl = 'ы'; }
echo '<p class="msg">Дамп из <u>'.$d.'</u> таблиц'.$tabl.'<br/>успешно создан!<br/>Его вес: <u>'.$wr.'</u></p><br/>---<br/>Записано<br/>CREATE: <u>'.$d.'</u><br/>INSERT: <u>'.$v.'</u><br/>DROP: <u>'.$d.'</u><br/>';
} else {
echo '<p class="err">Запись в файл<br/>не была выполнена.</p>';
}
@fclose($fp);
} else {
echo '<p class="err">Невозможно<br/>создать файл!</p>';
}
unset($dump);
} else {
echo '<p class="off">Массив таблиц пуст.</p>';
}
unset($onms); }
elseif(($om === 6)&&(YESSQL === 'YES')&&(isset($_POST['sql']))) {
echo '---<br/>';
$sql = trim($_POST['sql']);
if(isset($_POST['yes'])) {
$sql = str_replace('*_96*', '`', trim(@base64_decode($sql)));
if(@get_magic_quotes_gpc()) {
$sql = @stripslashes($sql);
}
if($sql !== '') {
if(@mysql_query($sql)) {
echo '<p class="msg">Ваш SQL - запрос<br/>успешно выполнен!</p>';
} else {
echo '<p class="err">Ваш SQL - запрос<br/>не был выполнен.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
} } else {
echo '<p class="off">Строка вашего<br/>SQL - запроса<br/>была пуста.</p>';
} } else {
if($sql !== '') {
echo '<p class="on">Подтверждаем<br/>SQL - запрос?</p>---</p>'.
'<form action="?r='.$r.'" method="post">'.
'<p align="left">'.
'<input type="hidden" name="h" value="'.$rh.'"/>'.
'<input type="hidden" name="u" value="'.$ru.'"/>'.
'<input type="hidden" name="p" value="'.$rp.'"/>'.
'<input type="hidden" name="b" value="'.$rb.'"/>'.
'<input type="hidden" name="bp" value="'.$obp.'"/>'.
'<input type="hidden" name="tp" value="'.$otp.'"/>'.
'<input type="hidden" name="m" value="6"/>'.
'<input type="hidden" name="sql" value="'.@base64_encode($sql).'"/>'.
'<input type="hidden" name="yes" value="yes"/>'.
'<input type="submit" value="Да, выполнить!"/>'.
'</p></form>'.
'<p align="left">';
} else {
echo '<p class="off">Строка вашего<br/>SQL - запроса<br/>была пуста.</p>';
} }
unset($sql); }
elseif((($om > 6)&&($om < 10)&&((($cnms >= 1)&&($onms !== ''))||($oall === 1)))||(($om === 10)&&($cnms === 1)&&($onms !== '')&&(isset($_POST['sql'])))) {
echo '---<br/>';
if(($om > 6)&&($om < 10)&&((($cnms >= 1)&&($onms !== ''))||($oall === 1))) {
if($om === 7) {
$query = 'DROP TABLE ';
$action = 'удаление, для';
}
if($om === 8) {
$query = 'TRUNCATE TABLE ';
$action = 'очистка, для';
}
if($om === 9) {
$query = 'OPTIMIZE TABLE ';
$action = 'оптимизация, для';
}
if($oall === 1) {
$onms = array();
if($shtbs = @mysql_query('SHOW TABLES FROM '.$ob.'')) {
while($rowtbs = @mysql_fetch_row($shtbs)) {
$onms[] = $rowtbs[0];
} } }
$ct = count($onms);
if($ct >= 1) {
$tq = 0; $fq = 0;
for($q = 0; $q < $ct; $q++) {
$querys = trim($query.$onms[$q]);
if(@mysql_query($querys)) {
$tq++; } else {
$fq++;
echo '<p class="err">Ваш запрос -<br/>'.$action.'<br/>'.str_replace('$', '&#036;', htmlspecialchars($onms[$q], ENT_QUOTES)).'<br/>не был выполнен.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
if($ct > 1) {
echo '---<br/>'; }
} }
if($tq === $ct) {
if($ct > ONPAGE) {
echo '<p class="msg">Ваш запрос -<br/>'.$action.'<br/>';
if($oall === 1) {
echo 'ВСЕХ <u>'.$ct.'</u> таблиц<br/>';
} else {
echo '<u>'.$ct.'</u> таблиц<br/>'; }
echo 'успешно выполнен!</p>';
} else {
echo '<p class="msg">Ваш запрос -<br/>'.$action.'<br/>';
if($oall === 1) {
echo 'ВСЕХ <u>'.$ct.'</u> таблиц:<br/>';
}
echo ''.@strtr(htmlspecialchars(@implode(",\n", $onms), ENT_QUOTES), @array("\n"=>"<br/>", "$"=>"&#036;")).'<br/>успешно выполнен!</p>';
} }
if($ct > 1) {
if($fq < 1) {
echo '---<br/>'; }
echo 'Запросов: <u>'.$ct.'</u><br/>Успешных: <u>'.$tq.'</u><br/>С ошибкой: <u>'.$fq.'</u><br/>';
} } else {
echo '<p class="off">Массив таблиц пуст!</p>';
}
unset($onms); }
elseif(($om === 10)&&($cnms === 1)&&($onms !== '')&&(isset($_POST['sql']))) {
$sql = trim($_POST['sql']);
if(@preg_match('~^[[:print:]]{1,64}$~i', $sql)) {
if(@mysql_query('ALTER TABLE '.$onms[0].' RENAME '.$sql.'')) {
echo '<p class="msg"><u>Таблица</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($onms[0], ENT_QUOTES)).'<br/>переименована в<br/>'.str_replace('$', '&#036;', htmlspecialchars($sql, ENT_QUOTES)).'</p>';
} else {
echo '<p class="err"><u>Таблица</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars($onms[0], ENT_QUOTES)).'<br/>не переименована в<br/>'.str_replace('$', '&#036;', htmlspecialchars($sql, ENT_QUOTES)).'<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
} } else {
echo '<p class="err">Недопустимое новое имя для таблицы или его длинна более 64 символов!</p>';
}
unset($onms);
unset($sql); }
else {
echo '<p class="err">Произошла ошибка.<br/>Команда не ясна!</p>';
} }
else {
$gots = 2;
if($shtbs = @mysql_query('SHOW TABLES FROM '.$ob.'')) {
$alltbs = @mysql_num_rows($shtbs);
if($alltbs >= 1) {
echo '<u>Таблиц</u>: '.$alltbs.'<br/>';
}
$allpgs = ceil($alltbs/ONPAGE);
if($otp > $allpgs) {
$otp = $allpgs; }
$ott = intval($otp * ONPAGE - ONPAGE);
if($ott < 0) {
$ott = 0; }
$dot = intval($ott + ONPAGE);
if($dot > $alltbs) {
$dot = $alltbs; }
echo '---</p>'.
'<form action="?r='.$r.'" method="post">'.
'<p align="left">'.
'<input type="hidden" name="h" value="'.$rh.'"/>'.
'<input type="hidden" name="u" value="'.$ru.'"/>'.
'<input type="hidden" name="p" value="'.$rp.'"/>'.
'<input type="hidden" name="b" value="'.$rb.'"/>';
if($alltbs >= 1) {
for($n = $ott; $n < $dot; $n++) {
$tnm = @mysql_result($shtbs, $n, 0);
echo '<input type="checkbox" name="nms[]" value="'.rawurlencode($tnm).'"/> '.
'<span style="font-weight:bold">'.str_replace('$', '&#036;', htmlspecialchars($tnm, ENT_QUOTES)).'</span><br/>';
} } else {
echo '<p class="off">Таблиц пока нет.</p>';
}
echo '<input type="hidden" name="bp" value="'.$obp.'"/>'.
'---<br/>';
if($allpgs > 1) {
echo 'Стр.: <u>'.$otp.'/'.$allpgs.'</u><br/>';
if($otp > 1) {
echo '[<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;b='.$rb.'&amp;m=1&amp;bp='.$obp.'&amp;tp='.($otp - 1).'">&lt;&lt;</a>]';
}
if($otp < $allpgs) {
echo '[<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;b='.$rb.'&amp;m=1&amp;bp='.$obp.'&amp;tp='.($otp + 1).'">&gt;&gt;</a>]';
}
echo '<br/>';
if($allpgs > 2) {
echo '<input type="text" name="tp" size="4" maxlength="4" value="'.$otp.'"/><br/>';
} else {
echo '<input type="hidden" name="tp" value="'.$otp.'"/>';
} }
echo '<u>Данные запроса</u>:<br/>'.
'<input name="sql" type="text" value=" "/><br/>'.
'<u>Действие</u>:<br/>'.
'<select name="m">'.
'<option value="4" selected="selected">Импортировать таблицу(ы)</option>';
if($allpgs > 2) {
echo '<option value="1">Переход на другую страницу</option>';
}
if($alltbs >= 1) {
echo '<option value="5">BackUp таблиц(ы)</option>';
if(YESSQL === 'YES') {
echo '<option value="6">SQL - запрос</option>';
}
echo '<option value="7">Удалить таблицу(ы).</option>'.
'<option value="8">Очистить таблицу(ы)</option>'.
'<option value="9">Оптимизировать таблицу(ы)</option>'.
'<option value="10">Переименовать таблицу</option>';
}
echo '</select><br/>';
if($alltbs > 1) {
echo '<input type="checkbox" name="all" value="all"/>'.
'<u><b>ВСЕ</b></u><br/>';
}
echo '<input type="submit" value="Выполнить!"/>'.
'</p></form>'.
'<p class="menu">';
} else {
echo '---<p class="err">Просмотр списка таблиц невозможен.<br/><u>Причина ошибки</u>:<br/>'.str_replace('$', '&#036;', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'</p>';
} }
if(($ob !== '')&&($om !== 2)&&($om !== 3)) {
echo '<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;m=1&amp;bp='.$obp.'">К базам</a><br/>';
if($gots === 1) {
echo '<a href="?r='.$r.'&amp;h='.$rh.'&amp;u='.$ru.'&amp;p='.$rp.'&amp;b='.$rb.'&amp;m=1&amp;bp='.$obp.'&amp;tp='.$otp.'">К таблицам</a><br/>';
} } }
echo '<div class="menu">'.
'<a href="index.php">Админка</a>'.
'</div>'.
'</p>';
include_once '../sys/inc/tfoot.php';
?>
