کد PHP:
<?PHP session_start();// start output buffering at the top of our script with this simple command// we've added "ob_postprocess" (our custom post processing function) as a parameter of ob_startob_start('ob_postprocess');
# check mpc-config.phpif(file_exists('../mpc-config.php')){require('../mpc-config.php');require('../plugins/date.php');
# check !num mysql = 0 mysql_query("select * from ".$db_prefix."setting") or header('location: ../install.php') or die(); # }else{header('location: ../include/error_config.php') or die();}####################################if(!$_COOKIE[COOKIESET.'username']){header('Location: login.php') or die();}else{#exitif(isset($_GET["exit"])){ setcookie(COOKIESET.'username','', time()-(3600*100048));
header('Location: login.php?exit_admin') or die();
}#### back up ######
if(isset($_GET["del"])){
$a = @unlink($_GET['del']); }if(isset($_GET['d'])){if(strip_tags($_GET['d'])=='xml'){//get all the tables$query = 'SHOW TABLES FROM '.$dbname;$result = mysql_query($query,$connection) or die('cannot show tables');if(mysql_num_rows($result)){ //prep output $tab = "\t"; $br = "\n"; $xml = '<?xml version="1.0" encoding="UTF-8"?>'.$br; $xml.= '<database name="'.$dbname.'">'.$br; //for every table... while($table = mysql_fetch_row($result)) { //prep table out $xml.= $tab.'<table name="'.$table[0].'">'.$br; //get the rows $query3 = 'SELECT * FROM '.$table[0]; $records = mysql_query($query3,$connection) or die('cannot select from table: '.$table[0]); //table attributes $attributes = array('name','blob','maxlength','multiple_key','not_null','numeric','primary_key','table','type','default','unique_key','unsigned','zerofill'); $xml.= $tab.$tab.'<columns>'.$br; $x = 0; while($x < mysql_num_fields($records)) { $meta = mysql_fetch_field($records,$x); $xml.= $tab.$tab.$tab.'<column '; foreach($attributes as $attribute) { $xml.= $attribute.'="'.$meta->$attribute.'" '; } $xml.= '/>'.$br; $x++; } $xml.= $tab.$tab.'</columns>'.$br; //stick the records $xml.= $tab.$tab.'<records>'.$br; while($record = mysql_fetch_assoc($records)) { $xml.= $tab.$tab.$tab.'<record>'.$br; foreach($record as $key=>$value) { $xml.= $tab.$tab.$tab.$tab.'<'.$key.'>'.htmlspecialchars(stripslashes($value)).'</'.$key.'>'.$br; } $xml.= $tab.$tab.$tab.'</record>'.$br; } $xml.= $tab.$tab.'</records>'.$br; $xml.= $tab.'</table>'.$br; } $xml.= '</database>'; //save file $handle = fopen($dbname.'-backup-MPC-'.md5($dbname).crc32($dbname).sha1($dbname).'.xml','w+'); fwrite($handle,$xml); fclose($handle);}$fname = $dbname.'-backup-MPC-'.md5($dbname).crc32($dbname).sha1($dbname).'.xml';$zipname = $dbname.'-backup-MPC-'.md5($dbname).crc32($dbname).sha1($dbname).'.zip';$z = fopen($zipname,'w+');fclose($z);$zip = new ZipArchive;if ($zip->open($zipname) === TRUE) { $zip->addFile($fname, $fname); $zip->close(); @unlink($fname); $zipname = base64_encode($zipname);} else { @unlink($zipname); header('location: ?file='.$fname.'#down');}header('location: ?file='.$zipname.'#down');}
elseif(strip_tags($_GET['d'])=='sql'){ $tables = '*';//get all of the tables if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } //cycle through foreach($tables as $table) { $result = mysql_query('SELECT * FROM '.$table); $num_fields = mysql_num_fields($result); $return.= 'DROP TABLE `'.$table.'`;'; $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; } //save file $handle = fopen('db-backup-MPC-'.(md5(implode(',',$tables))).'.sql','w+'); fwrite($handle,$return); fclose($handle);
$fname = 'db-backup-MPC-'.(md5(implode(',',$tables))).'.sql';$zipname = 'db-backup-MPC-'.(md5(implode(',',$tables))).'.zip';$z = fopen($zipname,'w+');fclose($z);$zip = new ZipArchive;if ($zip->open($zipname) === TRUE) { $zip->addFile($fname, $fname); $zip->close(); @unlink($fname); $zipname = base64_encode($zipname);} else { @unlink($zipname); header('location: ?file='.$fname.'#down');}header('location: ?file='.$zipname.'#down');}}
#################### end back up ####################$setting = mysql_query("select * from ".$db_prefix."setting");while($vsetting = mysql_fetch_array($setting)){?><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ابزار ها ‹ <?PHP echo $vsetting["title"];?> — ام پی سی</title><link rel="stylesheet" type="text/css" href="css/admin.css" /><script type="text/javascript" src="../js/jquery-1.6.2.min.js"></script><script type="text/javascript" src="js/custom.js"></script><meta name='robots' content='noindex,nofollow' /><link rel="shortcut icon" href="../favicon.ico"></head><body onLoad="startclock(); timerONE=window.setTimeout"><noscript><div align="right" dir="ltr" style="padding:5px;"><span dir="rtl" style="font-family:tahoma; font-size:11px;">لطفا جاوا اسكريپت مرورگر خود را براي استفاده از امكانات سايت فعال نماييد.</span> <img src="../img/pwd_warning.gif" width="16" height="16" align="absmiddle" /></div></noscript><!-- header --><div id="header"><a href="about.php"><div class="logo" title="درباره ام پی سی"><img src="images/logo-ghost.png" alt="logo" width="25" height="25" style="margin:2.5px 5px auto;"></div></a><div class="line"><img src="images/bg_line.gif" alt="" width="2" height="28"></div><a href="../index.php"><div class="htext" title="<?PHP echo $vsetting["title"];?>"><br><?PHP$text = $vsetting["title"];if(strlen($text) > 36){$text = mb_substr($text,0,36,'UTF-8')." ...";echo $text;}else {echo $text;}?></div></a><div class="line"><img src="images/bg_line.gif" alt="" width="2" height="28"></div><a href="http://forums.chargme.ir" target="_blank"><div class="htext" title="حل مشکلات و سوالات کاربران در انجمن تخصصی ام پی سی"><br>انجمن تخصصی ام پی سی</div></a><div class="line"><img src="images/bg_line.gif" alt="" width="2" height="28"></div><a href="mailto:mpc.sharr@gmail.com" target="_blank"><div class="htext" title="ارتباط با پشتیبانی"><br><img src="images/comment-grey-bubble.png" alt="exit" width="12" height="12" align="absmiddle"> ارتباط با پشتیبانی</div></a><div class="line"><img src="images/bg_line.gif" alt="" width="2" height="28"></div><a href="?exit"><div class="htext" title="خروج از قسمت مدیریت" style="line-height:5px;"><br><img src="images/logout.png" alt="exit" width="18" height="18" align="absmiddle"> خروج از مدیریت</div></a>
<a href="profile.php"><div class="acc" title="حساب من"><br>درود, <?PHP echo YOURNAME;?> <?PHPrequire('plugins/gravatar.php');echo "<img src=\"$grav_url\" alt=\"".YOURNAME."\" align=\"absmiddle\" width=\"22\" height=\"22\" style=\"background:#ffffff; border:solid #999 1px;\" />";?></div></a><div class="linel"><img src="images/bg_line.gif" alt="" width="2" height="28"></div>
</div>
<!-- body --><div id="body"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" id="right" style="width:180px;"> <a href="index.php"><div class="a1"><strong>محیط کاربری</strong></div></a> <a href="cards.php"><div class="a2"><strong>مدیریت کارت ها</strong></div></a> <a href="definition_cards.php"><div class="a3"><strong>تعریف کارت ها</strong></div></a> <a href="billing.php"><div class="a4"><strong>صورت حساب ها</strong></div></a> <div class="line_menu"></div> <a href="payment_gateway.php"><div class="a5"><strong>درگاه های پرداخت</strong></div></a> <a href="tools.php" class="a_acl"><div class="a_ac"><div class="a6_i"></div> <strong>ابزار ها</strong></div></a> <div class="line_menu"></div> <a href="setting.php"><div class="a7"><strong>تنظیمات</strong></div></a> <a href="help.php"><div class="a8"><strong>راهنما</strong></div></a> <br> <span style="line-height:20px; font-size:12px; color:#999"> <img src="images/date_and_time.png" alt="" width="16" height="16" align="absmiddle"> امروز » <?php $xnow = explode(', ', farsidate(strtotime("now")+12600, 's2')); echo $xnow[0].'<br> '.'ساعت <span id="clock"></span>'.'<br> مورخ '.date('Y/m/d').' میلادی'; ?><br><br><?PHP $update = explode("<>", file_get_contents('http://chargme.ir/mpc-designer/update.php?sharj='.VERSION)); if(VERSION!=$update[0] and $update[0]!=null){echo '<div align="center"><a href="'.$update[1].'" target="_blank">New Version '.$update[0].'</a></div>';}?><br> <a href="history.php" target="_blank"><span style="font-size:10px;">●</span> آمارگیر سایت</a><br> <a href="../date_converter.php" target="_blank"><span style="font-size:10px;">●</span> مبدل تاریخ</a><br> <a href="test_ip.php" target="_blank"><span style="font-size:10px;">●</span> صفخه تست آی پی</a><br><br><br><br></span></td> <td valign="top" id="left"> <div class="tools"><h3>ابزار ها</h3></div> <table width="100%" border="0" cellpadding="10" cellspacing="0"> <tr> <!-- 1 --> <td valign="top"> <br> <strong>توضیحات</strong> <br><br> <span style="line-height:25px;"> در این بخش شما می توانید از ابزار های موجود استفاده نمایید. <br> برای مثال از ابزار آمارگیر, آمار بازدید سایت را مشاهده نمایید, از مبدل تاریخ, تاریخ های شمسی و میلادی را به یکدیگر تبدیل کنید, از ابزار تست آی پی, آی پی سرور خود را بدست آورید و از آن در جاهای مختلف استفاده نمایید. <h3>یا می توانید... !</h3> از ابزار پشتیبان گیری استفاده نمایید و از اطلاعات دیتابیس سایت خود نسخه پشتیبان تهیه نمایید. </span> <br><br><br> <strong id="one"><a href="#one">پشتیبان گیری از اطلاعات</a></strong> <br><br> <div id="message"><?PHP if($a){echo '<span style="color:#370"><img src="images/yes.png" width="16" height="16" align="absmiddle" /> حذف فایل با موفقیت انجام شد</span><br><br>';}?></div> <ol style="line-height:35px;" dir="rtl"> <img src="images/database.png" alt="database" width="32" height="32" align="absmiddle" /> <strong style="font-size:11px;">دیتابیس</strong> <br /> <a href="?d=xml" class="mpcl"><img src="images/xml.png" alt="xml" width="25" height="25" align="absmiddle" /> دریافت اطلاعات دیتابیس با پسوند XML</a> <br /> <a href="?d=sql" class="mpcl"><img src="images/sql.png" alt="sql" width="25" height="25" align="absmiddle" /> دریافت اطلاعات دیتابیس با پسوند SQL</a> <?PHP if(isset($_GET['file'])){?> <h2 id="down"><a href="<?PHP echo base64_decode($_GET['file']);?>">« دریافت فایل »</a></h2> <span dir="rtl"><strong style="color:#370">* توجه : </strong>پس از این که دانلود فایل به اتمام رسید روی حذف فایل که در پایین قرار داده شده است کلیک کنید تا فایل پشتیبان از روی هاست پاک گردد.<br />اینکار برای بالا بردن ضریب امنیتی سایت ضروری می باشد.</span> <h2><a href="?del=<?PHP echo base64_decode($_GET['file']);?>#message" class="mpcl">« حذف فایل »</a></h2> <?PHP } ?> </ol> </td>
</tr> </table><br><!-- footer --><div id="footer" class="footer"><?PHP include'footer.php';?></div><!-- end footer -->
</td> </tr></table></div>
</body></html><?PHP } }
// end output buffering and send our HTML to the browser as a wholeob_end_flush(); // ob_postprocess is our custom post processing functionfunction ob_postprocess($buffer){ # بهینه سازی HTML با حذف فضاهای خالی $buffer = trim(preg_replace('/\s+/', ' ', $buffer)); return $buffer; # فشرده سازی HTML با gzip if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) { $buffer = gzencode($buffer); header('Content-Encoding: gzip'); } return $buffer; # اضافه کردن acronyms به HTML $acronyms['html'] = 'hypertext markup language'; $acronyms['css'] = 'cascading style sheets'; foreach($acronyms as $acronym => $meaning) { $buffer = preg_replace('/(\b' . $acronym . '\b)(?=[^>]*<)/i', '<acronym title="' . $meaning . '">\\1</acronym>', $buffer); } return $buffer; # انکود کردن کاراکترها // add styled double quotes $buffer = preg_replace('/"(?=[^>]*<)([^"]*)"(?=[^>]*<)/u', '“\\۱”', $buffer); // add styled apostrophes $buffer = preg_replace("/'(?=[^>]*<)/i", "’", $buffer); // add ellipses $buffer = str_replace('...', '…', $buffer); // encode ampersands $buffer = str_replace('&', ' & ', $buffer); return $buffer;}?>
مشکل اینه که short tags رو فعال نکردین روی لوکال