Файл: online-ftp/mysql/mysql.php
Строк: 186
<?php
// mysql by jasis//
$title='MYSQl';
include'system/head.php';
include'system/func.php';
include'system/mysql_connect.php';
switch(@$act){
default:
if($query=mysql_query("SHOW DATABASES")){
$kolls=mysql_num_rows($query);
echo'<div class="s1">Баз данных пользователя `'.$_SESSION['logine'].'` : '.$kolls.'</div>';
while($view=mysql_fetch_array($query)){
$coll=mysql_num_rows(mysql_query("SHOW TABLES FROM `".$view[0]."`"));
echo'<div><a href="base.php?act=del&d='.$view[0].'"><img src="img/b_drop.png" alt="x"></a>
<a href="mysql.php?act=view_db&d='.$view[0].'"><img src="img/b_props.png" alt=">"></a> '.$view[0].' ('.$coll.')</div>';
}
echo'<br><br><div class="s1">Меню</div>
<div class="s2">
<a href="base.php?act=create">Создать базу данных</a><br>
</div>';
echo'<div><a href="index.php?act=exit">Выйти с панели</a></div>';
}else{
echo error('Просмотр списка баз данных невозможен','index.php','Назад');
}
break;
case'view_db':
$d=provm($_GET['d']);
if($query=mysql_query("SHOW TABLES FROM `$d`")){
mysql_select_db($d);
$kolls=mysql_num_rows($query);
echo'<div class="s1">Таблиц в базе данных `'.$d.'` : '.$kolls.'</div>';
if($kolls == 0){echo'База пуста';}else{
$result = mysql_query( "SHOW TABLE STATUS" );
$dbsize = 0;
$arr=array();
while( $row = mysql_fetch_array( $result ) ) {
$dbsize += $row[ "Data_length" ] + $row[ "Index_length" ];
$arr[]=$row[ "Data_length" ] + $row[ "Index_length" ];
}
while($view=mysql_fetch_array($query)){
$plu++;
$cols=mysql_num_rows(mysql_query("SELECT * FROM `$d`.`".$view[0]."`"));
echo'<div><a href="table.php?act=del&d='.$d.'&t='.$view[0].'">
<img src="img/b_deltbl.png" alt="del"></a>
<a href="mysql.php?act=view_br&d='.$d.'&t='.$view[0].'"><img src="img/b_browse.png" alt="br"></a>
<a href="mysql.php?act=view_st&d='.$d.'&t='.$view[0].'"><img src="img/b_props.png" alt="st"></a>
<a href="table.php?d='.$d.'&t='.$view[0].'">'.$view[0].'</a> ('.$cols.') ['.formatfilesize($arr[$plu-1]).']';
echo'</div>';
}
}
echo'<br><br>
<div class="s1">Вес базы данных: '.formatfilesize($dbsize).'</div>
<div class="s1">Меню</div>
<div class="s2">
<a href="change.php?d='.$d.'">Multi-выбор</a><br>
<a href="mysql.php?act=import&d='.$d.'">Импорт</a><br>
<a href="mysql.php?act=export&d='.$d.'">Экспорт</a><br>
<a href="mysql.php?act=sql&d='.$d.'">SQL-запрос</a><br>
</div>';
echo error('','mysql.php','К базам');
echo'<div><a href="index.php?act=exit">Выйти с панели</a></div>';
}else{
echo error('Просмотр списка таблиц невозможен','mysql.php','Назад');
}
break;
case'view_st':
$d=provm($_GET['d']);
$t=provm($_GET['t']);
if($query=mysql_query("SHOW COLUMNS FROM `$t` FROM `$d`")){
$kolls=mysql_num_rows($query);
echo'<div class="s1">Количество столбцов таблици `'.$t.'` : '.$kolls.'</div>';
echo'<table border="0" width="100%">';
echo'<tr><td><b>Field</b></td><td><b>Type</b></td><td><b>Null</b></td><td><b>Key</b></td><td><b>Default</b></td><td><b>Extra</b></td></tr>';
while($view=mysql_fetch_array($query)){
echo'<tr>';
for($i=0; $i<6; $i++){
echo '<td>'.$view[$i].'</td>';
}
echo'</tr>';
}
echo'</table>';
echo error('','mysql.php?act=view_db&d='.$d,'Назад');
}else{
echo error('Просмотр структуры таблици невозможен','mysql.php','Назад');
}
break;
case'view_br':
$d=provm($_GET['d']);
$t=provm($_GET['t']);
$page=(int)$_GET['page'];
if($query=mysql_query("SHOW COLUMNS FROM `$t` FROM `$d`")){
if(mysql_select_db($d)){
$kolls=mysql_num_rows(mysql_query("SELECT * FROM `$t`"));
if($page < 0 || $page > $kolls) $page = 0;
if ($kolls < $kolls + 20) $end = $kolls;
else $end = $kolls + 20;
$quer=mysql_query("SELECT * FROM `$t` LIMIT $page,20");
echo'<div class="s1">Количество записей таблици `'.$t.'` : '.$kolls.'</div>';
if($kolls > 0){
echo'<form action="mysql.php?act=drop_line&d='.$d.'&t='.$t.'&page='.$page.'" method="post">';
echo'<table width="100%" cellpadding="1"><tr>';
$fields = mysql_list_fields($d, $t, $serv);
$columns = mysql_num_fields($fields);
$qw=array();
echo'<td></td><td></td><td></td>';
for ($i = 0; $i < $columns; $i++) {
$qw[]=mysql_field_name($fields, $i);
echo '<td><b>'.mysql_field_name($fields, $i).'</b></td>';
}
echo'</tr>';
while($viv=mysql_fetch_array($quer)){
$line++;
if($page == 0) $row=$line; else $row=$page+$line;
echo'<tr><td><input type="checkbox" name="check[]" value="'.$row.'"></td>
<td><a href="mysql.php?act=drop_line&d='.$d.'&t='.$t.'&line='.$row.'&page='.$page.'"><img src="img/b_drop.png" alt="x"></a></td>
<td><a href="mysql.php?act=edit_line&d='.$d.'&t='.$t.'&line='.$row.'&page='.$page.'"><img src="img/b_edit.png" alt="|"></a></td>';
for($e=0; $e<count($qw); $e++){
echo '<td>'.prov(mb_substr($viv[$qw[$e]],0,30,'UTF-8')).'</td>';
}
echo'</tr>';
}
echo'</table>';
echo'<div><input type="checkbox" value="check" onclick="check(this.form,'check[]',this.checked)"/> Все <input type="submit" value="Удалить выбранные"></div></form>';
strpage($page, 20, $kolls, 'mysql.php','act=view_br&d='.$d.'&t='.$t.'&');
}else{
echo'<div>Пусто</div>';
}
echo error('','mysql.php?act=view_db&d='.$d,'Назад');
}else{
echo error('Ошибка соеденения с базой','mysql.php','Назад');
}
}else{
echo error('Просмотр структуры таблици невозможен','mysql.php','Назад');
}
break;
case'drop_line':
$d=provm($_GET['d']);
$t=provm($_GET['t']);
$line=int($_GET['line']);
$page=int($_GET['page']);
if($query=mysql_query("SHOW COLUMNS FROM `$t` FROM `$d`")){
if(mysql_select_db($d)){
$kolls=mysql_num_rows(mysql_query("SELECT * FROM `$t`"));
echo'<div class="s1">Удаление записей в таблице `'.$t.'` базы данных `'.$d.'`</div>';
if($kolls > 0){
if(!empty($_POST['check'])){
$all=count($_POST['check']);
$yes=0;
foreach($_POST['check'] as $line){
$er++;
$line=$line-$er;
$fields = mysql_list_fields($d, $t, $serv);
$fiel=mysql_field_name($fields,0);
$quer=mysql_fetch_assoc(mysql_query("SELECT `$fiel` FROM `$t` LIMIT $line,1"));
$whe="`$fiel`='$quer[$fiel]'";
echo $whe.'<br>';
if(mysql_query("DELETE FROM `$t` WHERE $whe LIMIT 1")){ $yes++; }
}
echo error('Удалено '.$yes.' из '.$all,'mysql.php?act=view_br&d='.$d.'&t='.$t.'&page='.$page,'К записям');
}else{
$line=$line-1;
$fields = mysql_list_fields($d, $t, $serv);
$fiel=mysql_field_name($fields,0);
$quer=mysql_fetch_assoc(mysql_query("SELECT `$fiel` FROM `$t` LIMIT $line,1"));
if(mysql_query("DELETE FROM `$t` WHERE `$fiel`='".$quer[$fiel]."' LIMIT 1")){
echo error('Запись успешно удалена','mysql.php?act=view_br&d='.$d.'&t='.$t.'&page='.$page,'К записям');
}else{
echo error('Ошибка удаления записи','mysql.php?act=view_br&d='.$d.'&t='.$t.'&page='.$page,'К записям');
}
}
}else{
echo error('Данная таблица пуста','mysql.php?act=view_db&d='.$d,'Назад');
}
echo error('','mysql.php?act=view_db&d='.$d,'Назад');
}else{
echo error('Ошибка соеденения с базой','mysql.php','Назад');
}
}else{
echo error('База данных не существует','mysql.php','Назад');
}
break;
case'edit_line':
$d=provm($_GET['d']);
$t=provm($_GET['t']);
$line=int($_GET['line']);
$page=int($_GET['page']);
if($query=mysql_query("SHOW COLUMNS FROM `$t` FROM `$d`")){
if(mysql_select_db($d)){
$kolls=mysql_num_rows(mysql_query("SELECT * FROM `$t`"));
echo'<div class="s1">Изменение записи в таблице `'.$t.'` базы данных `'.$d.'`</div>';
if($kolls > 0){
if(isset($_GET['go']) && !empty($_POST['text'])){
$kol=mysql_num_rows($query);
$fields = mysql_list_fields($d, $t, $serv);
$fiel=mysql_field_name($fields,0);
$quer=mysql_fetch_assoc(mysql_query("SELECT `$fiel` FROM `$t` LIMIT $line,1"));
while($view=mysql_fetch_array($query)){
$num++;
if($num != $kol) $set.="`".$view[0]."`='".prov($_POST['text'][$num-1])."', "; else $set.="`".$view[0]."`='".prov($_POST['text'][$kol-1])."'";
}
if(mysql_query("UPDATE `$t` SET $set WHERE `$fiel`='".$quer[$fiel]."' LIMIT 1")){
echo error('Запись успешно отредактирована','mysql.php?act=view_br&d='.$d.'&t='.$t.'&page='.$page,'К записям');
}else{
echo error('Невозможно отредактировать запись','mysql.php?act=view_br&d='.$d.'&t='.$t.'&page='.$page,'К записям');
}
}else{
$line=$line-1;
$quer=mysql_fetch_assoc(mysql_query("SELECT * FROM `$t` LIMIT $line,1"));
echo'<form action="mysql.php?go&act=edit_line&d='.$d.'&t='.$t.'&line='.$line.'&page='.$page.'" method="post">';
echo'<table width="100%" cellpadding="1"><tr>
<td>Field</td><td>Type</td><td>Value</td>
</tr>';
while($view=mysql_fetch_array($query)){
echo '<tr>';
echo '<td>'.$view[0].'</td><td>'.$view[1].'</td><td>';
if($view[1] != 'text') echo'<input type="text" name="text[]" size="18" value="'.prov($quer[$view[0]]).'">'; else echo '<textarea name="text[]" cols="18" rows="5">'.prov($quer[$view[0]]).'</textarea>';
echo'</td></tr>';
}
echo'</table><input type="submit" value="Редактировать"></form>';
}
}else{
echo error('Данная таблица пуста','mysql.php?act=view_db&d='.$d,'Назад');
}
echo error('','mysql.php?act=view_db&d='.$d,'Назад');
}else{
echo error('Ошибка соеденения с базой','mysql.php','Назад');
}
}else{
echo error('База данных не существует','mysql.php','Назад');
}
break;
case'sql':
$d=provm($_GET['d']);
if($query=mysql_query("SHOW TABLES FROM `$d`")){
echo'<div class="s1">Запрос к базе данных `'.$d.'`</div>';
if(empty($_POST['po'])){
echo'<form action="mysql.php?act=sql&d='.$d.'" method="post">
Запрос:<br>
<textarea name="po" cols="18" rows="3"></textarea><br>
<input type="submit" value="Выполнить"/></form>
';
}else{
$po=prov($_POST['po']);
@mysql_select_db($d);
if(mysql_query($po)){
echo error('Запрос успешно выполнен','mysql.php?act=view_db&d='.$d,'К базе');
}else{
echo error('Невозможно выполнить запрос','mysql.php','Назад');
}
}
echo error('','mysql.php?act=view_db&d='.$d,'Назад');
}else{
echo error('Нет такой базы данных','mysql.php','Назад');
}
break;
case'export':
$d=provm($_GET['d']);
if($query=mysql_query("SHOW TABLES FROM `$d`")){
echo'<div class="s1">Запрос к базе данных `'.$d.'`</div>';
$onms = array();
if($shts = @mysql_query("SHOW TABLES FROM `$d`")) {
while($tnm = @mysql_fetch_row($shts)) {
$onms[] = $tnm[0];
} }
$ct = count($onms);
if($ct >= 1) {
$dump = '';
$di = 0; $v = 0;
for($n = 0; $n < $ct; $n++) {
$shcr = @mysql_query("SHOW CREATE TABLE `$d`.`".$onms[$n]."`");
$rwcr = @mysql_fetch_row($shcr);
$dump .= 'DROP TABLE IF EXISTS `'.$onms[$n].'`;'."rn";
$dump .= @strtr(@preg_replace('~[s]+~', ' ', $rwcr[1]), @array("( "=>"(rn", ", "=>",rn", ") )"=>")rn)")).";rnrn";
$st = @mysql_query("SELECT * FROM `$d`.`".$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 .= ');'."rn";
$dump .= $in;
unset($in);
if($wi === $nr - 1) {
$dump .= "rn"; }
$wi++; }
$di++; $v += $wi; }
if($ct > 1) {
$backupnm = $d;
} else {
$backupnm = $onms[0];
}
if($fp = @fopen('tmp/'.$savedir.'/'.$backupnm.'.sql', '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 error('Дамп из <u>'.$di.'</u> таблиц '.$tabl.' <br>успешно создан!<br/>
Его вес: <u>'.$wr.'</u> <br>Записано<br/>CREATE: <u>'.$di.'</u><br/>
INSERT: <u>'.$v.'</u><br/>DROP: <u>'.$di.'</u><br/><a href="load.php?file='.$backupnm.'">Скачать бэкап</a>','mysql.php?act=view_db&d='.$d,'Назад');
} else {
echo error('Запись в файл невозможна','mysql.php?act=view_db&d='.$d,'Назад');
}
@fclose($fp);
} else {
echo error('Невозможно создать файл','mysql.php?act=view_db&d='.$d,'Назад');
}
unset($dump);
} else {
echo error('Нет не одной таблици для бэкапа','mysql.php?act=view_db&d='.$d,'Назад');
}
unset($onms);
}else{
echo error('Нет такой базы данных','mysql.php?act=view_db&d='.$d,'Назад');
}
break;
case'import':
$d=prov($_GET['d']);
echo'<div class="s1">Импорт бэкапа в базу `'.$d.'`</div>';
if($query=mysql_query("SHOW TABLES FROM `$d`")){
if(isset($_GET['go']) && !empty($_FILES['file'])){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
if(isset($_FILES['file']['size'])){$fsize=round($_FILES['file']['size']/1024);}else{$fsize=0;}
$path=pathinfo($_FILES['file']['name']);
if($path['extension'] == 'sql' || $path['extension'] == 'txt'){
if($fsize>$maximport){
echo error('Максимальный вес файла не может привышать '.$maximport.'kb ','mysql.php?act=view_db&d='.$d,'Назад');
}else{
if(!copy($_FILES['file']['tmp_name'],'tmp/'.$savedir.'/'.$path['basename'])){
echo error('Не удалось загрузить файл','mysql.php?act=view_db&d='.$d,'Назад');
}else{
$sql='tmp/'.$savedir.'/'.$path['basename'];
if(is_file($sql)) {
if($data = @file_get_contents($sql)) {
@mysql_select_db($d);
@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 error('<b>Ошибка в запросе</b> <br>'.str_replace('$', '$', htmlspecialchars($query, ENT_QUOTES)).' <br>'.str_replace('$', '$', htmlspecialchars(@mysql_error(), ENT_QUOTES)).'<br>','mysql.php?act=view_db&d='.$d,'Назад');
} }
if($tq === $ct) {
echo'<div>Импорт бэкапа успешно выполнен</div>';
}
echo error('Запросов: <u>'.$ct.'</u><br/>Успешных: <u>'.$tq.'</u><br/>С ошибкой: <u>'.$fq.'</u><br/>','mysql.php?act=view_db&d='.$d,'Назад');
} else {
echo error('<u>Запросов типа</u>:<br/>DROP, CREATE, INSERT<br/>в файле нет.','mysql.php?act=view_db&d='.$d,'Назад');
}
unset($data);
unset($matches);
} else {
echo error('Ошибка импорта','mysql.php?act=view_db&d='.$d,'Назад');
}
} else {
echo error('Ошибка, файл не найден','mysql.php?act=view_db&d='.$d,'Назад');
}
@unlink('tmp/'.$savedir.'/'.$path['basename']);
}
}
}else{echo error('Неверный формат файла','mysql.php?act=view_db&d='.$d,'Назад');}
}else{echo error('Не удалось загрузить файл на сервер','mysql.php?act=view_db&d='.$d,'Назад');}
}else{
echo'<div><form action="mysql.php?go&act=import&d='.$d.'" method="post" enctype="multipart/form-data">';
echo'Выберите файл (.sql|.txt):<br><input type="file" name="file" size="18"> <input type="submit" value="Загрузить"></form></div><br>';
}
}else{
echo error('Нет такой базы данных','mysql.php?act=view_db&d='.$d,'Назад');
}
break;
}
include'system/foot.php';
?>