Файл: darkworld/adminka2/backup.php
Строк: 100
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$ref=rand(100,10000000);
header("Content-type:text/vnd.wap.wml");
echo "<?xml version="1.0" encoding="UTF-8"?>";
echo "<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd">";
echo "<wml>n";
echo "<head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/></head>";
echo "<card id="index" title="GM-panel">";
echo "<p align="left">";
$log = htmlspecialchars(stripslashes($log));
$pas = htmlspecialchars(stripslashes($pas));
/////////////////////////////////////////////////////
$text = @file("../data/reg/$log.dat");
if ($text!=""){
$udata = explode(":||:",$text[0]);
$login=trim($udata[0]);
$password=trim($udata[1]);}
////////////////////////////////////////////////////////
if (md5($pas)==$password && $log==$login && $log!=="" && md5($pas)!=="") {
$u = explode(".",$login);
if($log=="$u[0].GM"){
class zipfile
{
var $datasec = array();
var $ctrl_dir = array();
var $eof_ctrl_dir = "x50x4bx05x06x00x00x00x00";
var $old_offset = 0;
function add_dir($name)
{
$name = str_replace("\", "/", $name);
$fr = "x50x4bx03x04";
$fr .= "x0ax00";
$fr .= "x00x00";
$fr .= "x00x00";
$fr .= "x00x00x00x00";
$fr .= pack("V",0);
$fr .= pack("V",0);
$fr .= pack("V",0);
$fr .= pack("v", strlen($name) );
$fr .= pack("v", 0 );
$fr .= $name;
$fr .= pack("V",$crc);
$fr .= pack("V",$c_len);
$fr .= pack("V",$unc_len);
$this -> datasec[] = $fr;
$new_offset = strlen(implode("", $this->datasec));
$cdrec = "x50x4bx01x02";
$cdrec .="x00x00";
$cdrec .="x0ax00";
$cdrec .="x00x00";
$cdrec .="x00x00";
$cdrec .="x00x00x00x00";
$cdrec .= pack("V",0);
$cdrec .= pack("V",0);
$cdrec .= pack("V",0);
$cdrec .= pack("v", strlen($name) );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$ext = "x00x00x10x00";
$ext = "xffxffxffxff";
$cdrec .= pack("V", 16 );
$cdrec .= pack("V", $this -> old_offset );
$this -> old_offset = $new_offset;
$cdrec .= $name;
$this -> ctrl_dir[] = $cdrec;
}
function add_file($data, $name)
{ $name = str_replace("\", "/", $name);
$fr = "x50x4bx03x04";
$fr .= "x14x00";
$fr .= "x00x00";
$fr .= "x08x00";
$fr .= "x00x00x00x00";
$unc_len = strlen($data);
$crc = crc32($data);
$zdata = gzcompress($data);
$zdata = substr( substr($zdata, 0, strlen($zdata) - 4), 2);
$c_len = strlen($zdata);
$fr .= pack("V",$crc);
$fr .= pack("V",$c_len);
$fr .= pack("V",$unc_len);
$fr .= pack("v", strlen($name) );
$fr .= pack("v", 0 );
$fr .= $name;
$fr .= $zdata;
$fr .= pack("V",$crc);
$fr .= pack("V",$c_len);
$fr .= pack("V",$unc_len);
$this -> datasec[] = $fr;
$new_offset = strlen(implode("", $this->datasec));
$cdrec = "x50x4bx01x02";
$cdrec .="x00x00";
$cdrec .="x14x00";
$cdrec .="x00x00";
$cdrec .="x08x00";
$cdrec .="x00x00x00x00";
$cdrec .= pack("V",$crc);
$cdrec .= pack("V",$c_len);
$cdrec .= pack("V",$unc_len);
$cdrec .= pack("v", strlen($name) );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("V", 32 );
$cdrec .= pack("V", $this -> old_offset );
$this -> old_offset = $new_offset;
$cdrec .= $name;
$this -> ctrl_dir[] = $cdrec;
}
function file() {
$data = implode("", $this -> datasec);
$ctrldir = implode("", $this -> ctrl_dir);
return
$data.
$ctrldir.
$this -> eof_ctrl_dir.
pack("v", sizeof($this -> ctrl_dir)).
pack("v", sizeof($this -> ctrl_dir)).
pack("V", strlen($ctrldir)).
pack("V", strlen($data)).
"x00x00";
}
}
$abort = ignore_user_abort(1);
if (0 == (bool) ini_get('safe_mode')){
set_time_limit(600);
}
$zipfile = new zipfile();
$fdir = opendir('../data/');
while($file = readdir($fdir)){
if ($file != '.' and $file != '..' and $file != 'chat.dat' and $file != 'doss' and $file != 'drop' and $file != 'gorod' and $file != 'mags' and $file != 'monstrs' and $file != 'msg' and $file != 'paty' and $file != 'pvp' and $file != 'shop' and $file != 'tmp' and $file != 'vesh'){
if (is_file('../data/'.$file)){$zipfile->add_file(file_get_contents('../data/'.$file),$file);}
if (is_dir('../data/'.$file)){
$sdir = opendir('../data/'.$file);
while($sfile = readdir($sdir)){
if ($sfile != '.' and $sfile != '..'){
if (is_file('../data/'.$file.'/'.$sfile)){$zipfile->add_file(file_get_contents('../data/'.$file.'/'.$sfile), $file.'/'.$sfile);}
if (is_dir('../data/'.$file.'/'.$sfile)){
$ssdir = opendir('../data/'.$file.'/'.$sfile);
while($ssfile = readdir($ssdir)){
if ($ssfile != '.' and $ssfile != '..'){
if (is_file('../data/'.$file.'/'.$sfile.'/'.$ssfile)){$zipfile->add_file(file_get_contents('../data/'.$file.'/'.$sfile.'/'.$ssfile), $file.'/'.$sfile.'/'.$ssfile);}
}}}}}}}}
$save=$zipfile->file();
$fp=fopen("../backups/data.zip","w");
flock($fp,LOCK_EX);
fputs($fp,"$save");
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
if($fp){echo"Backup успешно сделан!";}
}
}else{echo"<small>Пароль или логин неверен!</small>";}
echo "</p></card></wml>";
?>