PHP窥视网站源文件(二)


-----(二:inc/Read_File_Info.php)
----------------------------------------
<?php
//====猎取网站所有文件信息========
//=======函数功能==m骺O?=========

header("Cache-Control: no-cache, must-revalidate");

if(!
session_is_registered("nowpathname_next"))
{
session_register("nowpathname_next");
session_start();
}
if(!
session_is_registered("nowpathname_pre"))
{
session_register("nowpathname_pre");
session_start();
}

else
{
session_start();
}
if(!isset(
$sessionOK))
{
    
Header("Location:./Read_File_Info.php?sessionOK=OK1");//==解决session的延迟问题
}
else
{
    if(
$sessionOK=="OK1")
    {
    
$nowpathname_next="../../..";//==网站根目录
    
$nowpathname_pre="../../..";
    }
}
//=============================
$aryDir;//目录数组
$aryDirindex=0;//目录数
$aryFile;//文件数组
$aryFileindex=0;//文件数
function my_is_dir($strfilename)
{
    global 
$aryDir;//现在目录变量数组
    
global $aryFile;//现在文件变量数组
        
global $aryDirindex;//目录数
    
global $aryFileindex;//文件数
    
if($strfilename!="."&&$strfilename!="..")
    {
//===不处理"..";"."
        
$tmpAryFiletype=explode(".",$strfilename);
        if(
$tmpAryFiletype[1]=""||!isset($tmpAryFiletype[1]))
        {
//==目录
        
        
$aryDir[$aryDirindex++]=$strfilename;
        
        }
        else
        {
//==文件
        
        
$aryFile[$aryFileindex++]=$strfilename;
        
        }
    }
//===不处理"..";"."
}//==end function
function showFileInfo()
    {
    global 
$aryDir;//现在目录变量数组
    
global $aryFile;//现在文件变量数组
        
global $aryDirindex;//目录数
    
global $aryFileindex;//文件数
    
if($aryDirindex!=0)
        {
    
asort($aryDir);
        }
    if(
$aryFileindex!=0)
        {
    
asort($aryFile);
        }
    echo 
"[目录数:".$aryDirindex."]<br>n";
    echo 
"[文件数:".$aryFileindex."]<br>n";
    for(
$i=0;$i<$aryDirindex;$i++)
        {
echo 
"<img src="../images/folder.gif">"."<a href="#" onclick="return NextDir('$aryDir[$i]')">".$aryDir[$i]."</a><br>n";
        
}
    
    for(
$i=0;$i<$aryFileindex;$i++)
        {
        
$tmpAryFiletype=explode(".",$aryFile[$i]);
        switch(
$tmpAryFiletype[1])
            {
//==文件类型,不同图标,自己扩充!
            
case "gif":
                {
        echo 
"<img src="../images/filegif.gif">"."<a href="#" onclick="return showfile('$aryFile[$i]','gif')">".$aryFile[$i]."<a><br>n";
                
break;
                }
            case 
"htm":
                {
        echo 
"<img src="../images/filehtml.gif">"."<a href="#" onclick="return showfile('$aryFile[$i]','htm')">".$aryFile[$i]."<a><br>n";
                
break;            
                }
            case 
"php":
                {
        echo 
"<img src="../images/filephp.gif">"."<a href="#" onclick="return showfile('$aryFile[$i]','php')">".$aryFile[$i]."<a><br>n";
                
break;
                }
            default:
                {
        echo 
"<img src="../images/fileorther.gif">"."<a href="#" onclick="return showfile('$aryFile[$i]','orther')">".$aryFile[$i]."<a><br>n";
                
break;
                }

            }
//end switch
        
}
    }

function 
my_File_info($strfilename)
{
$handle=opendir($strfilename);

while (
$file readdir($handle)) {
    
    
my_is_dir($file);
    }
closedir($handle); 
}
function 
initme()
{
//====初始化
global $varnowdir;//==现在目录
global $act;//==动作
global $nowpathname_pre;//=两个Session变量
global $nowpathname_next;
if(isset(
$varnowdir)&&$act=="next")
{
//===下一层目录
$nowpathname_pre=$nowpathname_next;
$nowpathname_next.="/".trim($varnowdir);
}
else if(isset(
$varnowdir)&&$act=="pre")
{
//==上一层目录
$nowpathname_next=$varnowdir;
    if(
$varnowdir!="../../..")
    {
//===到顶了吗?
$nowpathname_pre=substr($varnowdir,0,strrpos($varnowdir,"/"));
    }
    else
    {
$nowpathname_pre=$varnowdir;
    }
}
echo 
"<img src="../images/parentfolder.gif"><a href="#" onclick="return PreDir('$nowpathname_pre')">".$nowpathname_pre."</a><br><hr><br>n";
echo "<img src="../images/nowfolder.gif">".$nowpathname_next."<br><hr>n";
}
//====初始化
?>

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function NextDir(strdirname)
{   //alert(strdirname);
    window.navigate ("?sessionOK=OK&&act=next&&varnowdir="+strdirname);
    return false;
    //alert(strdirname);
}
function PreDir(strdirname)
{
    window.navigate("?sessionOK=OK&&act=pre&&varnowdir="+strdirname);
    return false;
}


//-->
</SCRIPT>
</head>
<body>
<div  id="leftdir" style="position:absolute;left:5;top:2;border-style:inset;border-color:#009999;border-width:2;width:150;height:450;background-color:#FFFFFF;color:#FF9900;font-size:10pt">
<?php
initme
();
my_File_info($nowpathname_next);
showFileInfo();
?>
</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
function showfile(strfilename,strtype)
{//==这个脚本就放这,别放前面!
    parent.SHOW2.value="<?php echo $nowpathname_next."/"?>"+strfilename+"@@"+strtype;
    return false;
}
//-->
</SCRIPT>
</body>
</html>
------------------未完待续。。。