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

📄 ad_mysql.php

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 PHP
📖 第 1 页 / 共 3 页
字号:
		if ( preg_match( "|win|i", $os ) )
		{
			$b = "\\";
		}
		else
		{
			$b = "/";
		}
		$out = opendir( $DIR.$b."archive_out" );
		while ( $file = readdir( $out ) )
		{
			if ( preg_match( "|(.*?).sql|", $file ) )
			{
				$ADMIN->html .= "<option value='".$DIR.$b."archive_out".$b.$file."'>{$file}</option>";
			}
		}
		closedir( $out );
		$in = opendir( $DIR.$b."archive_in" );
		while ( $file = readdir( $in ) )
		{
			if ( preg_match( "|(.*?).sql|", $file ) )
			{
				$ADMIN->html .= "<option value='".$DIR.$b."archive_in".$b.$file."'>{$file}</option>";
			}
		}
		closedir( $in );
		$ADMIN->html .= "</select>";
		$ADMIN->html .= "</td></tr>";
		$ADMIN->html .= $SKIN->end_form( "删除数据文件" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "act", "mysql" ),
			2 => array( "code", "ad_del" )
		) );
		$ADMIN->html .= $SKIN->start_table( "根据选择的条件删除数据文件..." );
		$ADMIN->html .= $SKIN->add_td_row( array( "<b>删除多少小时前的数据文件</b>", "<input type='text' name='hour'>" ) );
		$ADMIN->html .= $SKIN->add_td_row( array( "<b>删除多少天前的数据文件</b>", "<input type='text' name='day'>" ) );
		$ADMIN->html .= $SKIN->add_td_row( array( "<b>删除多少月前的数据文件</b>", "<input type='text' name='mou'>" ) );
		$ADMIN->html .= $SKIN->end_form( "删除" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function do_manage( )
	{
		global $ADMIN;
		global $SKIN;
		global $HTTP_POST_VARS;
		$count = 0;
		$all = count( $HTTP_POST_VARS['files'] );
		foreach ( $HTTP_POST_VARS['files'] as $to_del )
		{
			$count += @unlink( $to_del );
		}
		$ADMIN->page_title = "数据文件管理结果";
		$ADMIN->page_detail = "数据文件删除结果";
		$ADMIN->html .= $SKIN->start_table( "显示结果" );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"总数 {$all} 文件中 {$count} 文件被删除"
		) );
		$ADMIN->output( );
	}

	function ad_del( )
	{
		global $ADMIN;
		global $SKIN;
		global $HTTP_POST_VARS;
		$current = time( );
		if ( $HTTP_POST_VARS['hour'] != "" )
		{
			$del = $HTTP_POST_VARS['hour'] * 3600;
			$deltime = $current - $del;
		}
		else if ( $HTTP_POST_VARS['day'] != "" )
		{
			$del = $HTTP_POST_VARS['day'] * 86400;
			$deltime = $current - $del;
		}
		else if ( $HTTP_POST_VARS['mou'] != "" )
		{
			$del = $HTTP_POST_VARS['mou'] * 2592000;
			$deltime = $current - $del;
		}
		else
		{
			$ADMIN->page_title = "显示结果";
			$ADMIN->page_detail = "数据文件删除结果";
			$ADMIN->html .= $SKIN->start_table( "显示结果" );
			$ADMIN->html .= $SKIN->add_td_row( array( "没有删除文件" ) );
			$ADMIN->output( );
			exit( );
		}
		$count = 0;
		$DIR = getcwd( );
		$os = @php_uname( );
		if ( preg_match( "|win|i", $os ) )
		{
			$b = "\\";
		}
		else
		{
			$b = "/";
		}
		$out = opendir( $DIR.$b."archive_out" );
		while ( $file = readdir( $out ) )
		{
			if ( preg_match( "|(.*?).sql|", $file ) )
			{
				$date = str_replace( ".sql", "", $file );
				$date = explode( "_", $file );
				$date = $date[4];
				if ( $date < $deltime )
				{
					$count = @unlink( $DIR.$b."archive_out".$b.$file );
				}
			}
		}
		closedir( $out );
		$out = opendir( $DIR.$b."archive_in" );
		while ( $file = readdir( $out ) )
		{
			if ( preg_match( "|(.*?).sql|", $file ) )
			{
				$date = str_replace( ".sql", "", $file );
				$date = explode( "_", $file );
				$date = $date[4];
				if ( $date < $deltime )
				{
					$count = @unlink( $DIR.$b."archive_in".$b.$file );
				}
			}
		}
		closedir( $out );
		$ADMIN->page_title = "显示结果";
		$ADMIN->page_detail = "数据文件删除结果";
		$ADMIN->html .= $SKIN->start_table( "显示结果" );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"{$count} 文件已经删除"
		) );
		$ADMIN->output( );
	}

	function do_safe_backup( $tbl_name = "" )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $tbl_name == "" )
		{
			$skip = intval( $IN['skip'] );
			$create_tbl = intval( $IN['create_tbl'] );
			$enable_gzip = intval( $IN['enable_gzip'] );
			$filename = "ibf_dbbackup";
		}
		else
		{
			$skip = 0;
			$create_tbl = 0;
			$enable_gzip = 1;
			$filename = $tbl_name;
		}
		$output = "";
		@header( "Pragma: no-cache" );
		$do_gzip = 0;
		if ( $enable_gzip )
		{
			$phpver = phpversion( );
			if ( "4.0" <= $phpver && extension_loaded( "zlib" ) )
			{
				$do_gzip = 1;
			}
		}
		if ( $do_gzip != 0 )
		{
			@ob_start( );
			@ob_implicit_flush( 0 );
			header( "Content-Type: text/x-delimtext; name=\"{$filename}.sql.gz\"" );
			header( "Content-disposition: attachment; filename={$filename}.sql.gz" );
		}
		else
		{
			header( "Content-Type: text/x-delimtext; name=\"{$filename}.sql\"" );
			header( "Content-disposition: attachment; filename={$filename}.sql" );
		}
		if ( $tbl_name == "" )
		{
			$tmp_tbl = $DB->get_table_names( );
			foreach ( $tmp_tbl as $tbl )
			{
				if ( preg_match( "/^".$INFO['sql_tbl_prefix']."/", $tbl ) )
				{
					$this->get_table_sql( $tbl, $create_tbl, $skip );
				}
			}
		}
		else
		{
			$this->get_table_sql( $tbl_name, $create_tbl, $skip );
		}
		if ( $do_gzip )
		{
			$size = ob_get_length( );
			$crc = crc32( ob_get_contents( ) );
			$contents = gzcompress( ob_get_contents( ) );
			ob_end_clean( );
			echo $this->str_gzip_header.substr( $contents, 0, strlen( $contents ) - 4 ).$this->gzip_four_chars( $crc ).$this->gzip_four_chars( $size );
		}
		exit( );
	}

	function get_table_sql( $tbl, $create_tbl, $skip = 0 )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		if ( $create_tbl )
		{
			if ( $IN['addticks'] )
			{
				$DB->query( "SHOW CREATE TABLE `".$INFO['sql_database'].".".$tbl."`" );
			}
			else
			{
				$DB->query( "SHOW CREATE TABLE ".$INFO['sql_database'].".".$tbl );
			}
			$ctable = $DB->fetch_row( );
			echo $this->sql_strip_ticks( $ctable['Create Table'] ).";\n";
		}
		if ( $skip == 1 && ( $tbl == $INFO['sql_tbl_prefix']."admin_sessions" || $tbl == $INFO['sql_tbl_prefix']."sessions" || $tbl == $INFO['sql_tbl_prefix']."reg_anti_spam" || $tbl == $INFO['sql_tbl_prefix']."search_results" ) )
		{
			return $ret;
		}
		$DB->query( "SELECT * FROM {$tbl}" );
		$row_count = $DB->get_num_rows( );
		if ( $row_count < 1 )
		{
			return TRUE;
		}
		$f_list = "";
		$fields = $DB->get_result_fields( );
		$cnt = count( $fields );
		$i = 0;
		for ( ;	$i < $cnt;	++$i	)
		{
			$f_list .= $fields[$i]->name.", ";
		}
		$f_list = preg_replace( "/, \$/", "", $f_list );
		while ( $row = $DB->fetch_row( ) )
		{
			$d_list = "";
			$i = 0;
			for ( ;	$i < $cnt;	++$i	)
			{
				if ( !isset( $row[$fields[$i]->name] ) )
				{
					$d_list .= "NULL,";
				}
				else if ( $row[$fields[$i]->name] != "" )
				{
					$d_list .= "'".$this->sql_add_slashes( $row[$fields[$i]->name] )."',";
				}
				else
				{
					$d_list .= "'',";
				}
			}
			$d_list = preg_replace( "/,\$/", "", $d_list );
			echo "INSERT INTO {$tbl} ({$f_list}) VALUES({$d_list});\n";
		}
		return TRUE;
	}

	function sql_strip_ticks( $data )
	{
		return str_replace( "`", "", $data );
	}

	function sql_add_slashes( $data )
	{
		$data = str_replace( "\\", "\\\\", $data );
		$data = str_replace( "'", "\\'", $data );
		$data = str_replace( "\r", "\\r", $data );
		$data = str_replace( "\n", "\\n", $data );
		return $data;
	}

	function sbup_splash( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$ADMIN->page_detail = "你可以使用此功能备份你的论坛数据。";
		$ADMIN->page_title = "mySQL ".$this->true_version." 数据备份";
		if ( $this->mysql_version < 32321 )
		{
			$ADMIN->error( "对不起,你的 mySQL 数据库版本低于 3.23.21,数据库不支持备份功能,请先升级你的数据库系统。" );
		}
		$SKIN->td_header[] = array( "&nbsp;", "100%" );
		$ADMIN->html .= $SKIN->start_table( "Simple Back Up" );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>备份论坛 mySQL 数据:</b><br><br>一旦你点击了下面的链接,请耐心等待直到你的浏览器弹出备份成功对话框。备份数据所需的时间取决于你论坛数据的大小。<br><br>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<b><a href='{$ADMIN->base_url}&act=mysql&code=dosafebackup&create_tbl={$IN['create_tbl']}&addticks={$IN['addticks']}&skip={$IN['skip']}&enable_gzip={$IN['enable_gzip']}'>按此开始进行论坛数据备份</a></b>"
		) );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function show_backup_form( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$ADMIN->page_detail = "此功能允许你对论坛数据进行备份。<br><br><b>普通论坛数据备份</b>\n\t\t\t\t\t\t\t  <br>此功能将自动生成一个数据备份文件让你选择保存。(需要 PHP 打开安全模式参数)建议小型数据选用此功能进行数据备份。<!--<br><br>\n\t\t\t\t\t\t\t  <b>高级论坛数据备份</b>\n\t\t\t\t\t\t\t  <br>此功能允许你生成一个经过压缩的数据备份文件,并且可以直接保存到磁盘中。<br>注意:需要 PHP 打开安全模式参数才能使用此功能。-->";
		$ADMIN->page_title = "mySQL ".$this->true_version." 数据备份";
		if ( $this->mysql_version < 32321 )
		{
			$ADMIN->error( "对不起,你的 mySQL 数据库版本低于 3.23.21,数据库不支持备份功能,请先升级你的数据库系统。" );
		}
		$SKIN->td_header[] = array( "&nbsp;", "60%" );
		$SKIN->td_header[] = array( "&nbsp;", "40%" );
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "act", "mysql" ),
			2 => array( "code", "safebackup" )
		) );
		$ADMIN->html .= $SKIN->start_table( "普通论坛数据备份" );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>是否添加 'CREATE TABLE' 语句?</b><br>是否在数据表名称添加返回符号?<br>(如果你在备份时发现数据库错误信息,请选择此项) <input type='checkbox' name='addticks' value=1>",
			$SKIN->form_yes_no( "create_tbl", 1 )
		) );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>是否省略无意义的数据?</b><br>将不保存下列数据:ibf_sessions, ibf_admin_sessions, ibf_search_results, ibf_reg_anti_spam.",
			$SKIN->form_yes_no( "skip", 1 )
		) );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>是否使用 GZIP 功能?</b><br>将自动生成一个经过压缩的数据备份文件。",

⌨️ 快捷键说明

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