Файл: DarkAge/gm1.php
Строк: 126
<?
Error_Reporting(E_ALL & ~E_NOTICE);
$ref=rand(100,10000000);
include_once("files/antixak.php");
include_once("files/zag.php");
$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"){
switch($go) {
default:
echo'<a href="gm.php?log='.$log.'&pas='.$pas.'&go=profil">Профиль игроков</a><br />';
echo'<a href="chat.php?log='.$log.'&pas='.$pas.'">Управление чатом</a><br />';
if($log=="Amstor.GM"){echo'<a href="gm.php?log='.$log.'&pas='.$pas.'&go=backupdata">Backup-data</a><br />';
//echo'<a href="gm.php?log='.$log.'&pas='.$pas.'&go=backupgame">Backup-game</a><br />';
echo'<a href="gm.php?log='.$log.'&pas='.$pas.'&go=resbackup">Восстановить бэкап с данными</a><br />';}
break;
case 'profil':
echo "Логин:<br/>";
echo "<input name="loginn" maxlength="10" title="nick"/><br/>";
echo "<anchor title="go">OK<go href="gm.php?log=$log&pas=$pas&go=profiledit" method="post">";
echo "<postfield name="logi" value="$(loginn)"/>";
echo "</go></anchor><br/>";
break;
case 'profiledit':
$logi=$_POST['logi'];
$text = @file("data/reg/$logi.dat");
$udata = explode(":||:",$text[0]);
$aden=trim($udata[8]);
$exp=trim($udata[19]);
$lvl=trim($udata[9]);
$sp=trim($udata[31]);
echo "Уровень:<br/>";
echo "<input name="lvl$ref" maxlength="100" value="$lvl"/><br/>";
echo "Деньги:<br/>";
echo "<input name="aden$ref" maxlength="10" value="$aden"/><br/>";
echo "Опыт:<br/>";
echo "<input name="exp$ref" maxlength="10" value="$exp"/><br/>";
echo "SP:<br/>";
echo "<input name="sp$ref" maxlength="100" value="$sp"/><br/>";
echo "<anchor title="go">OK<go href="gm.php?log=$log&pas=$pas&go=profilsave" method="post">";
echo "<postfield name="lvl2" value="$(lvl$ref)"/>";
echo "<postfield name="aden2" value="$(aden$ref)"/>";
echo "<postfield name="exp2" value="$(exp$ref)"/>";
echo "<postfield name="sp2" value="$(sp$ref)"/>";
echo "<postfield name="login2" value="$logi"/>";
echo "</go></anchor><br/>";
break;
case 'profilsave':
$login2=$_POST['login2'];
$fal = @file("data/reg/$login2.dat");
$uda = explode(":||:",$fal[0]);
$sp2=$_POST['sp2'];
$aden2=$_POST['aden2'];
$lvl2=$_POST['lvl2'];
$uda[19]=$_POST['exp2'];
$t=$uda[0].':||:'.$uda[1].':||:'.$uda[2].':||:'.$uda[3].':||:'.$uda[4].':||:'.$uda[5].':||:'.$uda[6].':||:'.$uda[7].':||:'.$aden2.':||:'.$lvl2.':||:'.$uda[10].':||:'.$uda[11].':||:'.$uda[12].':||:'.$uda[13].':||:'.$uda[14].':||:'.$uda[15].':||:'.$uda[16].':||:'.$uda[17].':||:'.$uda[18].':||:'.$uda[19].':||:'.$uda[20].':||:'.$uda[21].':||:'.$uda[22].':||:'.$uda[23].':||:'.$uda[24].':||:'.$uda[25].':||:'.$uda[26].':||:'.$uda[27].':||:'.$uda[28].':||:'.$uda[29].':||:'.$uda[30].':||:'.$sp2.':||:'.$uda[32].':||:'.$uda[33].':||:'.$uda[34].':||:'.$uda[35].':||:'.$uda[36].':||:'.$uda[37].':||:'.$uda[38].':||:'.$uda[39].':||:'.$uda[40].':||:'.$uda[41].':||:'.$uda[42].':||:'.$uda[43].':||:'.$uda[44].':||:'.$uda[45].':||:'.$uda[46].':||:'.$uda[47].':||:'.$uda[48].':||:'.$uda[49].':||:'.$uda[50].':||:'.$uda[51].':||:'.$uda[52].':||:'.$uda[53].':||:'.$uda[54].':||:'.$uda[55].':||:'.$uda[56].':||:'.$uda[57].':||:'.$uda[58].':||:'.$uda[59].':||:'.$uda[60].':||:'.$uda[61].':||:'.$uda[62].':||:'.$uda[63].':||:'.$uda[64].':||:'.$uda[65].':||:'.$uda[66].':||:'.$uda[67].':||:'.$uda[68].':||:'.$uda[69].':||:'.$uda[70].':||:'.$uda[71].':||:'.$uda[72].':||:'.$uda[73].':||:'.$uda[74].':||:'.$uda[75].':||:'.$uda[76].':||:'.$uda[77].':||:'.$uda[78].':||:'.$uda[79].':||:'.$uda[80].':||:'.$uda[81].':||:'.$uda[82].':||:'.$uda[83].':||:'.$uda[84].':||:'.$uda[85].':||:'.$uda[86].':||:'.$uda[87].':||:'.$uda[88].':||:'.$uda[89].':||:'.$uda[90].':||:'.$uda[91].':||:'.$uda[92].':||:'.$uda[93].':||:'.$uda[94].':||:'.$uda[95].':||:'.$uda[96].':||:'.$uda[97].':||:'.$uda[98].':||:'.$uda[99].':||:'.$uda[100].':||:';
$fp=fopen("data/reg/$login2.dat","w");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,"$t");
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
echo"Профиль изменен!";
break;
case 'backupdata':
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 != '..'){
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/v2/data_files.zip","w");
flock($fp,LOCK_EX);
fputs($fp,"$save");
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
if($fp){echo"Backup успешно сделан!";}
break;
}
}else{echo'Ето место только для админов';}
}else{echo"Пароль или логин неверен!";}
include_once("files/down.php");
?>