📄 restore.php
字号:
<?php
//*****************************************
// id: restore
// EasyTalk V3.0 2008.5.6 20:50
// by 仙踪云影
//*****************************************
define('is_admin_path', 'yes');
require_once '../common.php';
$smarty->template_dir = "templates";
$smarty->compile_dir = "templates_c";
$query = "select * from ".$DBprefix."settings";
$result=mysql_query($query);
$data = @mysql_fetch_array($result);
$seokey=$data['seokey'];
$description=$data['description'];
$web_name=$data[0];
$web_name2=$data[1];
$web_miibeian=$data['web_miibeian'];
if ($admin_login !="yes" || $isadmin!=1)
header("Location: admin_login.php");
session_start();
global $server, $db_username,$db_password, $db_name;
include("mydb.php");
$d=new db($server,$db_username,$db_password,$db_name);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="keywords" content="<?php echo $seokey;?>" />
<meta name="description" content="<?php echo $description;?> - EasyTalk" />
<link rel="shortcut icon" href="favicon.ico" />
<link rel="stylesheet" href="<?php echo $webaddr;?>/admin/images/default/style.css" type="text/css" media="screen" />
<title><?php echo $web_name?> - <?php echo $web_name2;?></title>
<link rel="shortcut icon" href="../favicon.ico" />
</head>
<body>
<div id="container">
<div id="header">
<h1><a href="index.php"><img src="<?=$webaddr?>/admin/images/default/logo.gif" /><span>首页</span></a></h1>
</div>
<div id="main">
<div id="content">
<div id="stream" class="message">
<h3>后台管理 - 数据库管理 - 数据库恢复</h3>
<?php
if(!$_POST['act']&&!$_SESSION['data_file']){
$msgs[]="本功能在恢复备份数据的同时,将全部覆盖原有数据";
$msgs[]="数据恢复只能恢复由本系统导出的数据文件,其他软件导出格式无法识别";
$msgs[]="从本地恢复数据最大数据2m";
$msgs[]="如果您使用了分卷备份,只需手工导入文件卷1,其他数据文件会由系统导入";
show_msg($msgs);
?>
<form action="" method="post" enctype="multipart/form-data" name="restore.php">
<table width="100%" border="0" cellpadding="0" cellspacing="1">
<tr align="center" class="header"><td colspan="2" align="center">数据恢复</td></tr>
<tr><td width="33%"><input type="radio" name="restorefrom" value="server" checked>
从服务器文件恢复 </td><td width="67%"><select name="serverfile">
<option value="">-请选择-</option>
<?
$handle=opendir('./backup');
while ($file = readdir($handle)) {
if(eregi("^[0-9]{8,8}([0-9a-z_]+)(\.sql)$",$file)) echo "<option value='$file'>$file</option>";}
closedir($handle);
?>
</select></td></tr>
<tr><td><input type="radio" name="restorefrom" value="localpc"> 从本地文件恢复</td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="1500000"><input type="file" name="myfile"></td></tr>
<tr><td colspan="2" align="center"> <input type="submit" name="act" value="恢复"></td> </tr></table></form>
<? }
if($_POST['act']=="恢复"){
if($_POST['restorefrom']=="server"){
if(!$_POST['serverfile'])
{$msgs[]="您选择从服务器文件恢复备份,但没有指定备份文件";
show_msg($msgs); pageend(); }
if(!eregi("_v[0-9]+",$_POST['serverfile']))
{$filename="./backup/".$_POST['serverfile'];
if(import($filename)) $msgs[]="备份文件".$_POST['serverfile']."成功导入数据库<br /><br /><br /><center><a href='restore.php'>点击返回</a></center>";
else $msgs[]="备份文件".$_POST['serverfile']."导入失败";
show_msg($msgs); pageend();
}
else
{
$filename="./backup/".$_POST['serverfile'];
if(import($filename)) $msgs[]="备份文件".$_POST['serverfile']."成功导入数据库";
else {$msgs[]="备份文件".$_POST['serverfile']."导入失败";show_msg($msgs);pageend();}
$voltmp=explode("_v",$_POST['serverfile']);
$volname=$voltmp[0];
$volnum=explode(".sq",$voltmp[1]);
$volnum=intval($volnum[0])+1;
$tmpfile=$volname."_v".$volnum.".sql";
if(file_exists("./backup/".$tmpfile))
{
$msgs[]="程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件".$tmpfile.",请勿手动中止程序的运行,以免数据库结构受损";
$_SESSION['data_file']=$tmpfile;
show_msg($msgs);
sleep(3);
echo "<script language='javascript'>";
echo "location='restore.php';";
echo "</script>";
}
else
{
$msgs[]="此分卷备份全部导入成功";
show_msg($msgs);
}
}
}
if($_POST['restorefrom']=="localpc"){
switch ($_FILES['myfile']['error'])
{
case 1:
case 2:
$msgs[]="您上传的文件大于服务器限定值,上传未成功";
break;
case 3:
$msgs[]="未能从本地完整上传备份文件";
break;
case 4:
$msgs[]="从本地上传备份文件失败";
break;
case 0:
break;
}
if($msgs){show_msg($msgs);pageend();}
$fname=date("Ymd",time())."_".sjs(5).".sql";
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
copy($_FILES['myfile']['tmp_name'], "./backup/".$fname);}
if (file_exists("./backup/".$fname))
{
$msgs[]="本地备份文件上传成功";
if(import("./backup/".$fname)) {$msgs[]="本地备份文件成功导入数据库"; unlink("./backup/".$fname);}
else $msgs[]="本地备份文件导入数据库失败";
}
else ($msgs[]="从本地上传备份文件失败");
show_msg($msgs);
}
}
if(!$_POST['act']&&$_SESSION['data_file'])
{
$filename="./backup/".$_SESSION['data_file'];
if(import($filename)) $msgs[]="备份文件".$_SESSION['data_file']."成功导入数据库";
else {$msgs[]="备份文件".$_SESSION['data_file']."导入失败";show_msg($msgs);pageend();}
$voltmp=explode("_v",$_SESSION['data_file']);
$volname=$voltmp[0];
$volnum=explode(".sq",$voltmp[1]);
$volnum=intval($volnum[0])+1;
$tmpfile=$volname."_v".$volnum.".sql";
if(file_exists("./backup/".$tmpfile))
{
$msgs[]="程序将在3秒钟后自动开始导入此分卷备份的下一部份:文件".$tmpfile.",请勿手动中止程序的运行,以免数据库结构受损";
$_SESSION['data_file']=$tmpfile;
show_msg($msgs);
sleep(3);
echo "<script language='javascript'>";
echo "location='restore.php';";
echo "</script>";
}
else
{
$msgs[]="此分卷备份全部导入成功";
unset($_SESSION['data_file']);
show_msg($msgs);
}
}
function import($fname)
{global $d;
$sqls=file($fname);
foreach($sqls as $sql)
{
str_replace("\r","",$sql);
str_replace("\n","",$sql);
if(!$d->query(trim($sql))) return false;
}
return true;
}
function show_msg($msgs)
{
$title="提示:";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='1'>";
echo "<tr><td>".$title."</td></tr>";
echo "<tr><td><br><ul>";
while (list($k,$v)=each($msgs))
{
echo "<li>".$v."</li>";
}
echo "</ul></td></tr></table>";
}
function pageend()
{
exit();
}
?>
</div></div></div>
<?php include("templates/right.htm");?>
<div id="footer">
<font size=2><p><a>EasyTalk <font color=red><?php echo $version;?></font> © 2007 通盛视界<a href="http://www.tonsenz.com" target="_blank">www.tonsenz.com</a></a></p>
<p><b><font color="#3169AD">Powered by</font> <font color="#FF8400">EasyTalk <?=$version;?></font></b> <a href="http://www.miibeian.gov.cn" target="_blank" id="miibeian"><?php echo $web_miibeian;?></p>
</font>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -