⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 MYSQL全系列自导入数据库备份程序 v1.0 支持MYSQL4.1
💻 PHP
📖 第 1 页 / 共 3 页
字号:
		if(isset($fsqlzip)){
			clearstatcache();
			if(!file_exists("$fsqlzip->gzfilename.tmp")){
				fheader();echo "导出为压缩文件已完成,若有需要,请重新导出。";ffooter();exit;
			}
		}
		
		if(!$_POST["StartTime"]) $_POST["StartTime"]=time();

		$writefile_data = '';
		
		function writefile($data,$method='w'){
			global $fsqlzip,$_POST;;
			$file = "{$_POST[filename]}_pg{$_POST[page]}.php";
			if(isset($fsqlzip)){
				$fsqlzip->addfile($data,"$file","$fsqlzip->gzfilename.tmp");
			}else{
				$fp=fopen("$_POST[dir]/$file","$method");
				flock($fp,2);
				fwrite($fp,$data);
			}
		}
		

		$current_size = 0;
		function dealdata($data){
			global $current_size,$tablearr,$writefile_data,$_POST;;
			$current_size += strlen($data);
			$writefile_data .= $data;
			if($current_size>=intval($_POST["filesize"])*1024){
				$current_size=0;
				$writefile_data .= "\r\n?".">";

				writefile($writefile_data,"w");

				$_POST[page]=intval($_POST[page])+1;

				fheader();
				echo tablestart("正在从数据库'$_POST[db_dbname]'中导出数据……",500);

				$str1="<br>-= 以下数据表处理完成 =- <div class='borderdiv' style='width:150px;height:100px;overflow:auto;' align=left>";
				
				$finishByte=0;
				for(reset($tablearr);list($key,$val)=each($tablearr);){
					if($key<$_POST[tabledumping]){
						$str1.="√ $val<BR>\r\n";
						$finishByte+=$_POST[fsqltable][$val];
					}else if($key==$_POST[tabledumping]){
						$str1.="<a href='#' id='finisheditem'> </a></div>
						<br>-= 以下数据表正待处理 =-
						<div class='borderdiv' style='width:150px;height:100px;overflow:auto;' align=left>
						<font style='color:#FF0000'>→ $val</font><br>\r\n";
						$finishByte+=$_POST[lastinsert]*substr(strstr($_POST[fsqltable][$val],','),1);
						$finish=intval($finishByte/$_POST[totalsize]*100);						
					}else{
						$str1.="· $val<br>\r\n";
					}
				}
				$str1.="</div><BR>";

				$str2=tablestart("导出状态",300);
				$str2.=tabledata("共有数据:|".num_bitunit($_POST[totalsize])."","100|200");
				$str2.=tabledata("现已导出:|".num_bitunit($finishByte)."");
				$str2.=tabledata("每页导出:|".num_bitunit(intval($finishByte/$_POST[page]))."");
				$str2.=tabledata("导出时间间隔:|$_POST[nextpgtimeout] 秒");
				$str2.=tabledata("每页生成数据文件|≥ ".num_bitunit($_POST["filesize"]*1024)."");
				$str2.=tabledata("已生成数据文件:|".($_POST[page]-1)." 个");
				$str2.=tabledata("正在自动进入:|<a href='javascript:myform.submit();'>第 $_POST[page] 页</a>");
				$str2.=tabledata("已用时:|".timeformat(time()-$_POST["StartTime"])."");
				$str2.=tabledata("已完成:|{$finish}% ");
				$str2.=tabledata("完成进度:|<table width=100% height=12  border=0 cellspacing=1 cellpadding=0 class='tabletitle' align=center><tr><td width='$finish%'><div></div></td><td width='".(100-$finish)."%'  class='tabledata'><div></div></td></tr></table>");
				$str2.=tableend();
				$str2.="<B><div id='postingTag'></div></B>";
				echo tabledata("$str1|$str2");
				echo tableend();
				ffooter();
				eval(auto_submit_script());
				exit();
			}
		}


		// 开始导出一页
		$writefile_data = "<?\r\nif(!defined('VERSION')){echo \"<meta http-equiv=refresh content='0;URL={$_POST[filename]}.php'>\";exit;}\r\n";

		$tablearr=array();
		for(@reset($_POST[fsqltable]);count($_POST[fsqltable])&&@list($key,$val)=@each($_POST[fsqltable]);) {
			$tablearr[]=$key;
		}
		
		for($i=$_POST[tabledumping];$i<count($tablearr);$i++){
			sqldumptable($tablearr[$i],$i,1);  //导出表
		}
		
		//结束最后文件
		$data="echo '<center><BR><BR><BR><BR>完成。所有数据都已经导入数据库中。</center>	<br><br><font color=red><b>AD位 PHP主力技术论坛:<a href=\'http://www.phpso.com\' target=\'_blank\'>PHPSO.COM</a></b> </font><br>
	<B>	<font color=red>QQ群:6116767</font></B>'; exit; ?".">";

		$writefile_data .= "$data";
		writefile($writefile_data,"w");
		
		//引导文件内容
		$data='<?

		$usedumppass=1;  //导入数据时是否使用导入密码。如果您忘记了导入密码,请把值改为 0 。HTTP方式下载数据文件不能取消导入密码。

		define("VERSION","'.VERSION.'");
		error_reporting(1);
		@set_time_limit(0);
		$md5pass="'.md5($_POST[back_pass]).'";

		'.requestValues().'

		if($_GET["action"]=="downphp"){
			if(!file_exists("$_GET[phpfile]")||$_GET["db_pass"]!=$md5pass) exit;
			header("Content-disposition: filename=$_GET[phpfile]");
			header("Content-type: unknown/unknown");
			readfile("$_GET[phpfile]");
			exit;
		}
		'.frameset_html().postvars_function().'
		
		if($_GET["framename"]=="topframe"&&$_GET["action"]=="topframe"){
			echo "<html><body><center><a href=\'http://www.softpure.com\' target=\'_blank\'><img src=\''.$_POST[filename].'_faisunsqllogo.gif\' border=0 width=300 height=71></a></center></body></html>";
			exit;
		}
		?'.'><html><head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
		<title>faisunSQL 数据库自导入程序 — Powerd By faisun</title>'.csssetting().'</head>
		<body link="#0000FF" vlink="#0000FF" alink="#0000FF">
		<center>
		<font color=red>本文件由 faisunSQL自导入数据库备份程序 V'.VERSION.'Edit by HaierSpI生成</font><HR size=1>
		<script language="Javascript">document.doshowmywin=1;</script>		
		'.showmywin_script().'
		<?
		$showmywin0=$_POST[loadpage]?"<script language=Javascript>document.doshowmywin=0;</script></body>":"";
		
		if($_GET["action"]=="downall"){
			echo "<form name=\"actionform\" method=\"post\" action=\"\">";
			if($_POST[db_pass]!=$md5pass and ($_POST[db_pass]=md5($_POST[db_pass]))!=$md5pass){
			?'.'>
		  为了数据的安全,HTTP方式下载数据文件请输入正确的导入密码,导入密码在数据库导出时已创建。<BR>
		  导入密码:<input name="db_pass" value="" type="password"> '.fbutton('submit','action','确定','',1).'
			</form>
			<?
			exit;
		}
		if(!empty($_POST["deleteallfiles"])){
			for(reset($_POST["files"]);@list($key,$value)=@each($_POST["files"]);){
				if(@unlink($value)){
					echo "已删除: $value <br>";
				}else{
					echo "<b>删除失败: $value </b><br>";
				}
			}
			echo "<br>完成。";
			exit;
		}
		?'.'>
		以下是所有有关文件,如果您安装了FlashGet等软件,您可以点击右键并选择“Download All by FlashGet”下载。<br>
		下载完后您可以
		<input name="db_pass" value="<?=$_POST[db_pass];?'.'>" type="hidden">'.fbutton('submit','deleteallfiles','删除所有文件','onclick="return confirm(\'删除以下所有备份文件,确定吗?\');"',1).'

		<BR><BR>
		<?
		echo "<a href=\"'.$_POST[filename].'.php?action=downphp&phpfile='.$_POST[filename].'.php&db_pass=$_POST[db_pass]\">'.$_POST[filename].'.php</a><BR>
		<a href=\"'.$_POST[filename].'_faisunsqllogo.gif\">'.$_POST[filename].'_faisunsqllogo.gif</a><BR>
		<input type=\"hidden\" name=\"files[-1]\" value=\"'.$_POST[filename].'.php\">
		<input type=\"hidden\" name=\"files[0]\" value=\"'.$_POST[filename].'_faisunsqllogo.gif\">
		";
		$i=1;
		while(file_exists($afile="'.$_POST[filename].'_pg{$i}.php")){
			 echo "<a href=\"'.$_POST[filename].'.php?action=downphp&phpfile=$afile&db_pass=$_POST[db_pass]\">$afile</a><BR>
			 <input type=\"hidden\" name=\"files[$i]\" value=\"$afile\">
			 ";
			 $i++;
		}
		echo "</form></body></html>";
		exit;
		}

		if(!$_POST["action"] and !$_GET["action"]){
		?'.'><center><form name="configform" method="post" action="">'.
		tablestart('备份信息一览').
		tabledata("共有数据量:|".num_bitunit($_POST[totalsize])."","50%|50%").
		tabledata("共有数据表:|".count($_POST[table])).
		tabledata("每页生成数据文件|≥ ".num_bitunit($_POST["filesize"]*1024)).
		tabledata("数据文件数:|".$_POST[page]).
		tabledata("文件总数:|".($_POST[page]+2)).
		tabledata("备份时间:|".date("Y-m-d H:i")).
		tabledata("原数据库版本:|".$_POST[mysql_version]).
		tableend().
		tablestart('导入数据库配置').
		tabledata('服务器:|<input name="db_host" value="'.$_POST[db_host].'" type="text">',"50%|50%").
		tabledata('数据库:|<input name="db_dbname" value="'.$_POST[db_dbname].'" type="text">').
		tabledata('该数据库不存在时自动创建|<input name="db_autocreate" value="1" type="checkbox" checked>').
		tabledata('用户名:|<input name="db_username" value="root" type="text">').
		tabledata('密 码:|<input name="db_password" value="" type="password">').
		tabledata('导入一页时间间隔:|<input name="nextpgtimeout" value="'.$_POST[nextpgtimeout].'" type="text"> 秒').
		tabledata('强制编码(请保持默认):|<input name="db_code" value="'.$db_codeset.'" type="text">').
		tabledata('导入密码:|<input name="db_pass" value="" type="password">').
		tabledata('安全的临时表(<a href="javascript:alert(\'使用临时表插入完整无误的数据后再删除原表,要临时占用数据库空间.\');" title="帮助">?</a>):|<input name="db_safttemptable" type="checkbox" id="db_safttemptable" value="yes" checked>').
		tableend().
		fbutton('submit','action','导入','',1).
		'</form><a href="'.$_POST[filename].'.php?action=downall" target="_blank">点击这里HTTP方式下载所有文件</a>.
		</center>
		<?
		exit;
		}
		if($usedumppass and md5($_POST[db_pass])!=$md5pass) die("<div id=pageendTag></div>导入密码不正确!如果您忘记了导入密码,请把本源文件开头的 \$usedumppass 的值改为 0 。 $showmywin0");
		'.mysql_functions().'
		
		$totalpage='.$_POST[page].';
		if(!$_POST[loadpage]){$_POST[loadpage]=1;}
		include("'.$_POST[filename].'_pg$_POST[loadpage].php");
		echo "<center><form name=myform method=\'post\' action=\'\'>";
		$_POST[loadpage]++;

		echo "<input type=\'hidden\' name=\'faisunsql_postvars\' value=\'".fsql_StrCode(serialize($_POST),"ENCODE")."\'>
		<BR><BR>正在导入数据到数据库\'$_POST[db_dbname]\'……<BR><BR>本页运行完成! 正在自动进入<a href=\'javascript:myform.submit();\'>第 $_POST[loadpage] 页</a>,共 $totalpage 页……
		<BR><BR>(除非进程长久不动,否则请不要点击以上页码链接。)";
		?'.'>
		<BR><BR><B><div id="postingTag"></div></B>
		<? '.auto_submit_script().' ?'.'>
		<div id="pageendTag"></div>
		</form></center>
		</body></html>
		';

		//写入引导文件
		if(isset($fsqlzip)){
			$fsqlzip->addfile($data,"$_POST[filename].php","$fsqlzip->gzfilename.tmp");
			rename("$fsqlzip->gzfilename.tmp","$fsqlzip->gzfilename");
		}else{
			$file="$_POST[dir]/$_POST[filename].php";
			$fp=fopen($file,"w");
			flock($fp,2);
			fwrite($fp,$data);
			fclose($fp);
		}

		//提示导出完成
		fheader();
		if(isset($fsqlzip)){
			echo tabletext("<BR><BR>全部完成,用时 ".timeformat(time()-$_POST["StartTime"])." 。
			<BR><BR>数据库'$_POST[db_dbname]'已全部保存到文件夹'$_POST[dir]'中,共 ".intval($_POST[page])." 页,".(intval($_POST[page])+2)." 个文件。
			<BR><BR>这些文件已压缩为'$fsqlzip->gzfilename',此文件格式易被别人下载,最好尽快删除.
			<BR><BR>将此压缩文件解压后,置于服务器可访问目录,并运行'$_POST[filename].php'即可将数据导入。
			<BR><BR>以FTP方式或<a href='$fsqlzip->gzfilename' target='_blank'><H3>以HTTP方式下载所有文件</H3></a>
			<BR><BR>",500);
		}else{
			echo tabletext("<BR><BR>全部完成,用时 ".timeformat(time()-$_POST["StartTime"])." 。
			<BR><BR>数据库'$_POST[db_dbname]'已全部保存到文件夹'$_POST[dir]'中,共 ".intval($_POST[page])." 页,".(intval($_POST[page])+2)." 个文件。
			<BR><BR>将此文件夹置于服务器可访问目录,并运行'$_POST[filename].php'即可将数据导入。
			<BR><BR>以FTP方式或<a href='$_POST[dir]/{$_POST[filename]}.php?action=downall' target='_blank'><H3>以HTTP方式下载所有文件</H3></a>
			或在<a href='$_POST[dir]/{$_POST[filename]}.php' target='_blank'><H3>运行备份文件 {$_POST[filename]}.php </H3></a>时也会出现此链接。
			<BR><BR>",500);
		
		}
		echo "<div id='postingTag'></div>";
		ffooter();
		exit;

	elseif($_POST[back_type]=="download"): ////////////////////////   Sent Data ////////////////////////////

		$extension="";
		if($_POST[extension]=="zip" or $_POST[extension]=="gz"){
			if(@function_exists('gzencode')){ $extension=".$_POST[extension]"; }
			else{ fheader();echo "<BR><BR><center>压缩文件格式需要系统支持。</center><BR><BR>";ffooter();exit; }
		}

		$echo_string = '<?	error_reporting(1);	@set_time_limit(0); '.requestValues().' ?'.'>
		<html><head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
		<title>faisunSQL 数据库自导入程序 — Powerd By faisun</title>'.csssetting().'</head>
		<body link="#0000FF" vlink="#0000FF" alink="#0000FF">
		<center>
		<font color=red>本文件由 faisun 编写的 <a href="http://www.softpure.com" target="_blank">faisunSQL自导入数据库备份程序 V'.VERSION.'</a> 生成</font><HR size=1>
		</center>
		<?
		
		if(!$_POST["action"]){
			?'.'>
			<form name="configform" method="post" action="">'.
			tablestart('备份信息一览').
			tabledata("共有数据量:|".num_bitunit($_POST[totalsize])).
			tabledata("共有数据表:|".count($_POST[table])).
			tabledata("备份时间:|".date("Y-m-d H:i")).
			tabledata("原数据库版本:|".$_POST[mysql_version]).
			tableend().
			tablestart("导入数据库配置").
			tabledata('服务器:|<input name="db_host" value="'.$_POST[db_host].'" type="text">').
			tabledata('数据库:|<input name="db_dbname" value="'.$_POST[db_dbname].'" type="text">').
			tabledata('该数据库不存在时自动创建:|<input name="db_autocreate" value="1" type="checkbox" checked>').
			tabledata('用户名:|<input name="db_username" value="" type="text">').
			tabledata('密 码:|<input name="db_password" value="" type="password">').
			tabledata('安全的临时表(<a href="javascript:alert(\'使用临时表插入完整无误的数据后再删除原表,要临时占用数据库空间.\');" title="帮助">?</a>):|<input name="db_safttemptable" type="checkbox" id="db_safttemptable" value="yes" checked>').
			tableend().
			'<center><input name="action" type="submit" value=" 导入 "></center>
			</form></body></html>
			<?
			exit;
		}
		'.mysql_functions()."\r\n\r\n";
		////// 开头部分结束 ////////

		function dealdata($data){
			global $echo_string;
			$echo_string .= "$data";
		}

		for(@reset($_POST[fsqltable]);count($_POST[fsqltable])&&@list($key,$val)=@each($_POST[fsqltable]);) {
			sqldumptable($key,0,0);
		}

		$echo_string .= "echo \"<BR><BR>完成。所有数据已成功导入到 [{\$_POST[db_dbname]}]。\"; ?"."></body></html>";

		if($extension){ $echo_string = gzencode($echo_string); }

		header("Content-disposition: filename=$_POST[sqlfilename]{$extension}");
		header("Content-type: unknown/unknown");
		echo $echo_string;

		exit;
	endif;
}
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -