zb5beta - 질문답변
알고있는 소스를 올린건지 모르겠는데 웹폴더 백업할떼 유용할껍니다.
현제 저는 카페24 를 쓰고 있는데 속도도 잘나오고...
Ps. 제로님, 이소스를 제로5 DB백업 에 추가 하면 더 좋을껏 같은데...
<?php
$password = "12345678" ; // 관리 비번입니다.
/////////////////////////////////////////////////////////
session_start();
if ( $password == "12345678" ) //디폴드 관리 비번
{
HtmlHead("관리자 비번을 다시 설정하세요:") ;
echo "<h3 align=center>관리자 비번을 설정하지 않으셨습니다.!!!</h3>";
echo "<center>관리자 비번바꾸기: <br>"
. 'Notepad로 zip.php파일을 열고 두분쩨 줄<font color=red>$password = "12345678" </font> 중에 12345678을 다른 비번으로 바꿔주시면 되요.</center>';
hg_exit();
}
if ( !IsSet($_SESSION['administrator']) )
{
if ( !IsSet($_POST['user_pass']) )
{
HtmlHead("관리자비번: ");
echo '<h3 align="center">안전을 위해서 인증을 걸쳐야 합니다.: </h3>';
hg_exit('<br><form action=' . $_SERVER['PHP_SELF']
. ' method="post">관리자 비번을 입력하세요: <input name="user_pass"> <input type="submit" value="확인"> </form>');
}
else
{
if ( $password != $_POST['user_pass'] )
{
HtmlHead("비번이 틀렸습니다.!");
MessageBox("관리자 비번이 틀렸습니다!zip.php 파일두번쩨 줄 확인바랍니다.", true);
hg_exit("", true);
}
$_SESSION['administrator'] = "seted";
header("Location: {$_SERVER['PHP_SELF']}");
}
hg_exit();
}
if ( !IsSet($_GET['dirname']) )
{
show_input_form() ;
}
else
{
// check if empty
if ( empty($_GET['dirname']) )
{
hg_exit("웹폴더를 입력하세요") ;
}
// check valid dirname
if ( FALSE !== strpos($_GET['dirname'], "/") )
{
hg_exit(""/" 폴더명을 "/""""없이 입력하세요) ;
}
if ( FALSE !== strstr($_GET['dirname'], "..") )
{
hg_exit("".." 폴더이름이 정확하지 않습니다.") ;
}
// check valid dir
if ( !is_dir($_GET['dirname']) )
{
hg_exit(""{$_GET['dirname']}" 폴더명을 확인해주세요") ;
}
$szData = "" ;
$szInfo = "" ;
$file_count = @ZipDir($_GET['dirname'], &$szData, &$szInfo) ;
$info_size_16byte = @sprintf("%016d", @strlen($szInfo)) ;
$szData = @sprintf("%016d",$file_count) . $info_size_16byte . $szInfo . $szData ;
$filename = $_GET['dirname'] . ".dat" ;
if ( function_exists("gzencode") )
{
$szData = gzencode($szData) ;
$filename .= ".gz" ;
}
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: " . strlen($szData));
Header("Content-Disposition: attachment; filename=$filename");
echo $szData ;
}
function show_input_form()
{
echo HtmlHead("파일 압축") ;
echo "<center><h4><font color=red>비번 인증완료!</font></h4></center>n";
echo "<form name="input"><br><br>n"
. "<center><h3>압축할려는 폴더를 입력하세요. 항상 압축하려는 디랙터리 위에 zip.php 파일이 있어야 합니다.사용완료후zip.php파일은 삭제 바랍니다.</h3></center><p>n"
. "<center><input name="dirname">n"
. "<input type="button" value="확인" onClick="show_download_link(dirname.value);"></center>n"
. "</form>n" ;
echo "<script>n"
. "input.dirname.focus();n"
. "function show_download_link(dir)n"
. "{"
. " var top = (screen.height-200)/2 ;n"
. " var left = (screen.width-300)/2 ;n"
. " newwin=window.open('', '', 'width=300,height=200,top=' + top + ',left=' + left + ', resizable=0,scrollbars=auto');n"
. " url = "{$_SERVER['PHP_SELF']}" + "?dirname=" + dir ;n"
. " newwin.document.write('<a href=' + url + '>다운로드<br>다른이름으로 저장"</a>');n"
. "}"
. "</script>n" ;
echo HtmlFoot() ;
}
function ZipDir($szDirName, &$szData, &$szInfo)
{
// write dir header
$szInfo .= "$szDirName|[dir]n" ;
$file_count = 0 ;
$hDir = OpenDir($szDirName) ;
while ( $file = ReadDir($hDir) )
{
if ( $file=="." || $file==".." ) continue ;
$szCurFile = "$szDirName/$file" ;
if ( Is_Dir($szCurFile) )
{
$file_count += ZipDir($szCurFile, &$szData, &$szInfo) ;
}
else if ( Is_File($szCurFile) )
{
$hCurFile = fopen($szCurFile, "rb") ;
$size = filesize($szCurFile) ;
$szStream = fread( $hCurFile, $size ) ;
fclose($hCurFile) ;
$file_count++ ;
// write info
$szInfo .= "$szCurFile|$sizen" ;
// write data
$szData .= $szStream ;
}
}
// write dir footer
$szInfo .= "$szDirName|[/dir]n" ;
return $file_count ;
}
function HtmlHead($title="", $css_file="")
{
echo "<html>n"
. "n"
. "<head>n"
. "<meta http-equiv="Content-Type" content="text/html; charset=utf8">n"
. "<title>$title</title>n"
. "<style type="text/css">n"
. "body,pre,td {font-size:12px; background-color:#fcfcfc; font-family:Tahoma,verdana,Arial}n"
. "input,textarea{font-size:12px; background-color:#f0f0f0; font-family:Tahoma,verdana,Arial}n"
. "</style>n"
. "</head>n"
. "n"
. "<body>n" ;
}
function HtmlFoot()
{
echo "<br><hr color="#003388">n"
. "<center>n"
. "<p style="font-family:verdana; font-size:12px">Contact us: n"
. "<a href="http://www.Crazyhouse.cn/" target="_blank">http://www.Crazyhouse.cn/</a></p>n"
. "</center>n"
. "</body>n"
. "n"
. "</html>" ;
}
function MessageBox($str)
{
echo "<script>alert('$str');</script>n";
}
function hg_exit($str="", $goback=false)
{
if ( !empty($str) )
{
echo ("<center>$str</center>");
}
if ( $goback )
{
echo ('<big><center><a href="JavaScript:history.go(-1);">이전페이지로</a></center></big>');
}
HtmlFoot();
exit;
}
?>
