Просмотр файла backup.php

Размер файла: 7.82Kb
<? 
#####################################################################################
#ВНИМАНИЕ! СКРИПТ СОВЕРШЕННО БЕСПЛАТНЫЙ, ПОЭТОМУ ЗАПРЕЩАЕТСЯ ЕГО ПРОДАЖА            #
#И ЕЩЁ: СОБЛЮДАЙТЕ АВТОРСКИЕ ПРАВА! АВТОР СКРИПТА Шабанов Николай ([email protected])#
###########################################################              ############
#  /*   Coded by Kolabas                                  #
#     site: http://nkorus.info && http://wap.nkorus.info  #
#     mail: [email protected]    */                        #
##########                                     ############
 error_reporting(0);
Error_Reporting(E_ALL & ~E_NOTICE);
Error_Reporting (ERROR | WARNING);

extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
extract($HTTP_COOKIE_VARS);
extract($HTTP_SERVER_VARS);
extract($HTTP_SESSION_VARS);

$host = "$h"; $dbname ="$dbname"; $uname = "$n"; $upass ="$p"; $structure_only=false;
function mysqlbackup($host,$dbname, $uid, $pwd, $structure_only, $crlf) {
$con=@mysql_connect("localhost",$uid, $pwd) or die("Could not connect");
$db=@mysql_select_db($dbname,$con) or die("Could not select db");
$result=@mysql_query("SELECT VERSION() AS version");
if ($result != FALSE && @mysql_num_rows($result) > 0) {
  $row   = @mysql_fetch_array($result);
  $match = explode('.', $row['version']);
 } else {
  $result=@mysql_query("SHOW VARIABLES LIKE \'version\'"); 
  if ($result != FALSE && @mysql_num_rows($result) > 0){
   $row   = @mysql_fetch_row($result);
   $match = explode('.', $row[1]);}}
if (!isset($match) || !isset($match[0])) {
  $match[0] = 3;}
 if (!isset($match[1])) {
  $match[1] = 21;}
 if (!isset($match[2])) {
  $match[2] = 0;}
 if(!isset($row)) {
  $row = '3.21.0';}
define('MYSQL_INT_VERSION', (int)sprintf('%d%02d%02d', $match[0], $match[1], intval($match[2])));
define('MYSQL_STR_VERSION', $row['version']);
unset($match);
 $sql = "# MySQL dump by mysql_kpanel email: [email protected]".$crlf;
 $sql.= "# Host: $host Database: $dbname".$crlf;
 $sql.= "----------------------------".$crlf;
 $sql.= "# Server version: ".MYSQL_STR_VERSION.$crlf;
 $sql.= $crlf.$crlf.$crlf;
 out(1,$sql);
 $res=@mysql_list_tables($dbname);  
 $nt=@mysql_num_rows($res);  
 for ($a=0;$a<$nt;$a++) {
  $row=mysql_fetch_row($res);  
  $tablename=$row[0];
 $sql=$crlf."# ----------------------------------------".$crlf."# table structure for table '$tablename' ".$crlf;
 if (MYSQL_INT_VERSION >= 32321) {
   $result=mysql_query("SHOW CREATE TABLE $tablename");
   if ($result != FALSE && mysql_num_rows($result) > 0) {
    $tmpres = mysql_fetch_array($result);
    $pos           = strpos($tmpres[1], ' (');
    $tmpres[1]     = substr($tmpres[1], 0, 13)
                     . $tmpres[0]
                     . substr($tmpres[1], $pos);
 $sql .= $tmpres[1].";".$crlf.$crlf;}
   mysql_free_result($result);} else {
   $sql.="CREATE TABLE $tablename(".$crlf;  
   $result=mysql_query("show fields  from $tablename",$con);  
while ($row = mysql_fetch_array($result)) {
    $sql .= "  ".$row['Field'];
    $sql .= ' ' . $row['Type'];
    if (isset($row['Default']) && $row['Default'] != '') {
     $sql .= ' DEFAULT \'' . $row['Default'] . '\'';}
    if ($row['Null'] != 'YES') {
     $sql .= ' NOT NULL';}
    if ($row['Extra'] != '') {
     $sql .= ' ' . $row['Extra'];}
    $sql .= ",".$crlf;}
 mysql_free_result($result);
   $sql = ereg_replace(',' . $crlf . '$', '', $sql);
 $result = mysql_query("SHOW KEYS FROM $tablename");
    while ($row = mysql_fetch_array($result)) {
     $ISkeyname    = $row['Key_name'];
     $IScomment  = (isset($row['Comment'])) ? $row['Comment'] : '';
     $ISsub_part = (isset($row['Sub_part'])) ? $row['Sub_part'] : '';
     if ($ISkeyname != 'PRIMARY' && $row['Non_unique'] == 0) {
      $ISkeyname = "UNIQUE|$kname";}
     if ($IScomment == 'FULLTEXT') {
      $ISkeyname = 'FULLTEXT|$kname';}
     if (!isset($index[$ISkeyname])) {
      $index[$ISkeyname] = array();}
     if ($ISsub_part > 1) {
      $index[$ISkeyname][] = $row['Column_name'] . '(' . $ISsub_part . ')';} else {
      $index[$ISkeyname][] = $row['Column_name'];}}
    mysql_free_result($result);
    while (list($x, $columns) = @each($index)) {
     $sql     .= ",".$crlf;
     if ($x == 'PRIMARY') {
      $sql .= '  PRIMARY KEY (';
      } else if (substr($x, 0, 6) == 'UNIQUE') {
      $sql .= '  UNIQUE ' . substr($x, 7) . ' (';
     } else if (substr($x, 0, 8) == 'FULLTEXT') {
      $sql .= '  FULLTEXT ' . substr($x, 9) . ' (';} else {
      $sql .= '  KEY ' . $x . ' (';}
     $sql     .= implode($columns, ', ') . ')';}
    $sql .=  $crlf.");".$crlf.$crlf;}
  out(1,$sql);
 if ($structure_only == FALSE) {
$result = mysql_query("SELECT * FROM  $tablename");
  $fields_cnt   = mysql_num_fields($result);
  while ($row = mysql_fetch_row($result)) {
   $table_list     = '(';
   for ($j = 0; $j < $fields_cnt; $j++) {
    $table_list .= mysql_field_name($result, $j) . ', ';}
   $table_list = substr($table_list, 0, -2);
   $table_list     .= ')';
 $sql = 'INSERT INTO ' . $tablename
                                   . ' VALUES (';
   for ($j = 0; $j < $fields_cnt; $j++) {
    if (!isset($row[$j])) {
     $sql .= ' NULL, ';
    } else if ($row[$j] == '0' || $row[$j] != '') {
     $type          = mysql_field_type($result, $j);
if ($type == 'tinyint' || $type == 'smallint' || $type == 'mediumint' || $type == 'int' ||
                        $type == 'bigint'  ||$type == 'timestamp') {
      $sql .= $row[$j] . ', ';}else {
      $dummy  = '';
      $srcstr = $row[$j];
      for ($xx = 0; $xx < strlen($srcstr); $xx++) {
       $yy = strlen($dummy);
       if ($srcstr[$xx] == '\\')   $dummy .= '\\\\';
       if ($srcstr[$xx] == '\'')   $dummy .= '\\\'';
       if ($srcstr[$xx] == "\x00") $dummy .= '\0';
       if ($srcstr[$xx] == "\x0a") $dummy .= '\n';
       if ($srcstr[$xx] == "\x0d") $dummy .= '\r';
       if ($srcstr[$xx] == "\x1a") $dummy .= '\Z';
       if (strlen($dummy) == $yy)  $dummy .= $srcstr[$xx];}
      $sql .= "'" . $dummy . "', ";}} else {
     $sql .= "'', ";}}
   $sql = ereg_replace(', $', '', $sql);
   $sql .= ");".$crlf;
   out(1,$sql);}
  mysql_free_result($result);}}
 return; }
function define_crlf() {
 global $HTTP_USER_AGENT;
 $ucrlf = "\n";
 if (strstr($HTTP_USER_AGENT, 'Win')) {
  $ucrlf = "\r\n";}
 else if (strstr($HTTP_USER_AGENT, 'Mac')) {
  $ucrlf = "\r";}else {
  $ucrlf = "\n";}
 return $ucrlf;}
function out($fptr,$s)   {
 echo $s; }
if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'OPERA');
} else if (ereg('MSIE ([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'IE');
} else if (ereg('OmniWeb/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'OMNIWEB');
} else if (ereg('Mozilla/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'MOZILLA');
} else if (ereg('Konqueror/([0-9].[0-9]{1,2})', $HTTP_USER_AGENT, $log_version)) {
 define('USER_BROWSER_AGENT', 'KONQUEROR');
} else {
 define('USER_BROWSER_AGENT', 'OTHER');
}
$mime_type = (USER_BROWSER_AGENT == 'IE' || USER_BROWSER_AGENT == 'OPERA')
                   ? 'application/octetstream'
                   : 'application/octet-stream';
$now = gmdate('D, d M Y H:i:s') . ' GMT';
$filename = $dbname;
$ext = "sql";
$crlf = define_crlf();

 header('Content-Type: ' . $mime_type);
 header('Expires: ' . $now);
if (USER_BROWSER_AGENT == 'IE') {
  header('Content-Disposition: inline; filename="' . $filename . '.' . $ext . '"');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');} else {
  header('Content-Disposition: attachment; filename="' . $filename . '.' . $ext . '"');
  header('Pragma: no-cache');
 mysqlbackup($host,$dbname,$uname,$upass,$structure_only,$crlf);}


?>