Exemple #1
0
     if ($admin_runquery) {
         $result = sql_run($_POST['sql_content']);
         if ($result) {
             flash("success");
         } else {
             flash();
         }
     } else {
         flash("admin_runquery_forbidden");
     }
 }
 if ($do == "backup") {
     $filename = date('ymd') . '_' . pb_radom(6);
     $db->query('SET SQL_QUOTE_SHOW_CREATE=0', 'SILENT');
     $time = gmdate("M d Y H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")));
     $tables = arraykeys2(fetchtablelist($tb_prefix), 'Name');
     if (mysql_get_server_info() > '4.1') {
         $db->query("set names '" . $dbcharset . "'");
     }
     $backupfilename = DATA_PATH . "backup_" . $backupdir . DS . str_replace(array('/', '\\', '.'), '', $filename);
     $sqldump = '';
     $tableid = 0;
     $startfrom = 0;
     for (; $tableid < count($tables); $tableid++) {
         $sqldump .= sqldumptable($tables[$tableid], $startfrom, strlen($sqldump));
         $startfrom = 0;
     }
     $dumpfile = $backupfilename . '.sql';
     $tableid--;
     if (trim($sqldump)) {
         $fp = file_put_contents($dumpfile, $sqldump);
Exemple #2
0
 $sqlcharset = getval('sqlcharset');
 $extendins = getval('extendins');
 $sqlcompat = getval('sqlcompat');
 $usehex = intval(getval('usehex'));
 $_SGLOBAL['db']->query('SET SQL_QUOTE_SHOW_CREATE=0', 'SILENT');
 //Error-free execution off the table and I create a column without quotes
 if (empty($filename) || strlen($filename) > 40) {
     //Determine the length of the file name
     cpmessage('documents_were_incorrect_length');
 } else {
     $filename = preg_replace("/[^a-z0-9_]/i", '', str_replace('.', '_', $filename));
 }
 $tables = array();
 // backup mode
 if ($type == 'uchomes') {
     $tables = arraykeys2(fetchtablelist($tablepre), 'Name');
 } elseif ($type == 'custom') {
     if (isset($_POST['setup'])) {
         //POST submit backup
         $tables = empty($_POST['customtables']) ? array() : $_POST['customtables'];
         data_set('custombackup', $tables);
     } else {
         //Jump backup automatically
         $tables = data_get('custombackup');
         $tables = unserialize($tables);
     }
 }
 if (empty($tables) || !is_array($tables)) {
     cpmessage('backup_table_wrong');
 }
 $time = sgmdate('Y-m-d H:i:s', $_SGLOBAL['timestamp']);
Exemple #3
0
\t\t</tr>
\t\t</table>
\t</td>
\t</tr>
\t</table>
END;
//备份
if ($op == 'export') {
    $shelldisabled = function_exists('shell_exec') ? '' : 'disabled';
    $zipdisplay = function_exists('gzcompress') ? '' : 'style="display:none"';
    $filename = date('ymd') . '_' . random(8);
    $dbversion = intval($_SGLOBAL['db']->version());
    $sqlcharsets = "<input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value=\"\" checked> {$alang['customfield_title_isdefault']}" . ($dbcharset ? " &nbsp; <input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value=\"{$dbcharset}\"> " . strtoupper($dbcharset) : '') . ($dbversion > '4.1' && $dbcharset != 'utf8' ? " &nbsp; <input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value='utf8'> UTF-8</option>" : '');
    $tablelist = '';
    //取得SupeSite表
    $supe_tablelist = fetchtablelist($tablepre);
    $rowcount = 0;
    foreach ($supe_tablelist as $value) {
        $tablelist .= ($rowcount % 4 ? '' : '</tr><tr>') . "<td><input type='checkbox' name='customtables[]' value='{$value['Name']}' checked>{$value['Name']}</td>\n";
        $rowcount++;
    }
    $tablelist .= '</tr>';
    $formhash = formhash();
    print <<<END
\t<form method="post" action="{$theurl}&op=backupstart" enctype="multipart/form-data">
\t<input type="hidden" name="formhash" value="{$formhash}">
\t\t<table cellspacing="2" cellpadding="2" class="helptable"><tr><td>{$alang['database_export_help']}</td></tr></table>
\t\t<table cellspacing="0" cellpadding="0" width="100%"  class="maintable">
\t\t\t<tr>
\t\t\t\t<th><input type="radio" name="type" value="supesite" checked onclick="\$('showtables').style.display='none'">{$alang['supesite_all_database']}</th>
\t\t\t</tr>
<input class="button" type="submit" name="exportsubmit" value="<?=$lang['submit']?>"></center></form>
<?

	} else {

		$db->query('SET SQL_QUOTE_SHOW_CREATE=0', 'SILENT');

		if(!$filename || preg_match("/(\.)(exe|jsp|asp|aspx|cgi|fcgi|pl)(\.|$)/i", $filename)) {
			cpmsg('database_export_filename_invalid');
		}

		$time = gmdate("$dateformat $timeformat", $timestamp + $timeoffset * 3600);
		if($type == 'discuz') {
			$tables = arraykeys2(fetchtablelist($tablepre), 'Name');
		} elseif($type == 'discuzsupesite') {
			$tables = arraykeys2(array_merge(fetchtablelist($tablepre), ($supe['tablepre'] ? fetchtablelist($supe['tablepre']) : array())), 'Name');
		} elseif($type == 'custom') {
			$tables = array();
			if(empty($setup)) {
				if($tables = $db->fetch_first("SELECT value FROM {$tablepre}settings WHERE variable='custombackup'")) {
					$tables = unserialize($tables['value']);
				}
			} else {
				$customtables= array_merge(empty($customtables) ? array() : $customtables, empty($supetables) ? array() : $supetables);
				$customtablesnew = empty($customtables)? '' : addslashes(serialize($customtables));
				$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('custombackup', '$customtablesnew')");
				$tables = & $customtables;
			}
			if( !is_array($tables) || empty($tables)) {
				cpmsg('database_export_custom_invalid');
			}
Exemple #5
0
						$filename = sprintf($usezip == 2 ? $backupfilename."-%s".'.zip' : $dumpfile, $i);
						$filelist .= "<li><a href=\"$filename\">$filename\n";
					}
					cpmsg('恭喜您,全部 '.$volume.' 个备份文件成功创建,备份完成。<a href="'.$phpself.'?action='.$action.'">数据备份</a><ul>'.$filelist.'</ul>');
				}
			}

		}

	}

	$shelldisabled = function_exists('shell_exec') ? '' : 'disabled';
	$sqlcharsets = "<input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value=\"\" checked> $lang[default]".($dbcharset ? " &nbsp; <input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value=\"$dbcharset\"> ".strtoupper($dbcharset) : '').($db->version() > '4.1' && $dbcharset != 'utf8' ? " &nbsp; <input class=\"radio\" type=\"radio\" name=\"sqlcharset\" value='utf8'> UTF-8</option>" : '');

	$tablelist = "";
	$pnbak_tables = fetchtablelist('',1);
	foreach($pnbak_tables as $key => $tables){
		$rowcount =0;
		$tablelist .="<tr>\n\t<td colspan=\"4\"><b>".(empty($key)?"其它":$key)."数据表</b>&nbsp;&nbsp;<input type=\"checkbox\" name=\"chkall\" onclick=\"exportcheckall(this,'".(empty($key)?"other_":$key)."')\" class=\"checkbox\" checked> <b>全选</b></td>\n</tr>\n";
		$tablelist .= "<tbody id=\"".(empty($key)?"other_":$key)."\">";
		foreach($tables as $table) {
			$tablelist .= ($rowcount % 4 ? '' : "<tr>")."\n\t<td><input class=\"checkbox\" type=\"checkbox\" name=\"customtables[]\" value=\"$table[Name]\" checked> $table[Name]</td>".($rowcount % 4!=3 ? '' : "\n</tr>\n");
				$rowcount++;
		}
		$i = $rowcount%4==0?0:(4-$rowcount%4);
		for(; $i>0;$i--){
			$tablelist .= ($rowcount % 4 ? '' : "<tr>")."\n\t<td>&nbsp;</td>".($rowcount % 4!=3 ? '' : "\n</tr>\n");
			$rowcount++;
		}
		$tablelist .= "</tbody>";
	}