!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache/2.2.22 (Debian). PHP/5.6.36 

uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 

uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) 

Safe-mode: OFF (not secure)

/home/h33678/data/www/zt-tsou.org.ua/modules-alien/ajaxfilemanager/plugins/access.svn/   drwxr-xr-x
Free 107.4 GB of 200.55 GB (53.55%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     class.svnAccessDriver.php (6.77 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package info.ajaxplorer.plugins
 * 
 * Copyright 2007-2009 Charles du Jeu
 * This file is part of AjaXplorer.
 * The latest code can be found at http://www.ajaxplorer.info/
 * 
 * This program is published under the LGPL Gnu Lesser General Public License.
 * You should have received a copy of the license along with AjaXplorer.
 * 
 * The main conditions are as follow : 
 * You must conspicuously and appropriately publish on each copy distributed 
 * an appropriate copyright notice and disclaimer of warranty and keep intact 
 * all the notices that refer to this License and to the absence of any warranty; 
 * and give any other recipients of the Program a copy of the GNU Lesser General 
 * Public License along with the Program. 
 * 
 * If you modify your copy or copies of the library or any portion of it, you may 
 * distribute the resulting library provided you do so under the GNU Lesser 
 * General Public License. However, programs that link to the library may be 
 * licensed under terms of your choice, so long as the library itself can be changed. 
 * Any translation of the GNU Lesser General Public License must be accompanied by the 
 * GNU Lesser General Public License.
 * 
 * If you copy or distribute the program, you must accompany it with the complete 
 * corresponding machine-readable source code or with a written offer, valid for at 
 * least three years, to furnish the complete corresponding machine-readable source code. 
 * 
 * Any of the above conditions can be waived if you get permission from the copyright holder.
 * AjaXplorer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * 
 * Description : Still experimental, browse a local SVN repository.
 */
require_once("svn_lib.inc.php");

class 
svnAccessDriver extends AbstractAccessDriver {
    
    var 
$listingParser;
    var 
$xmlOutput "";
    var 
$cdataBuffer "";
    var 
$crtListingMode "";
    var 
$listElements = array();
    var 
$crtElement = array();
    var 
$crtPath;
    
    function 
svnAccessDriver($driverName$filePath$repository$optOptions NULL){
        
parent::AbstractAccessDriver($driverName$filePath$repository);
    }
    
    function 
switchAction($action$httpVars$fileVars){
        
        if(
$action == "ls"){
            
$this->crtPath "";
            if(isSet(
$httpVars["dir"]) && $httpVars["dir"] != ""){
                
$this->crtPath $httpVars["dir"];
            }            
            
$this->crtListingMode = (isSet($httpVars["mode"])?$httpVars["mode"]:"complete");
            
$res ListRepository($this->repository$this->crtPath);
            
//$res[IDX_STDOUT] = "";
            //header("content-type:text/xml");
            //print_r($res[IDX_STDOUT]);
            
$this->parseListing($res[IDX_STDOUT]);
            
//print_r($this->listElements);
            //exit();
            
AJXP_XMLWriter::header();
            
// FIRST PASS FOR FOLDERS;
            
foreach ($this->listElements as $element){
                if(
$element["is_file"] == "1") continue;
                print(
"<tree ");
                foreach (
$element as $attName => $attValue){                    
                    print 
"$attName=\"".$attValue."\" ";
                }
                print(
"/>");
            }
            if(
$this->crtListingMode != "complete"){
                foreach (
$this->listElements as $element){
                    if(
$element["is_file"] == "0") continue;
                    print(
"<tree ");
                    foreach (
$element as $attName => $attValue){                    
                        print 
"$attName=\"".$attValue."\" ";
                    }
                    print(
"/>");
                }
            }
            
AJXP_XMLWriter::close();
            exit(
1);
        }else if(
$action == "log" && isSet($httpVars["file"])){
            
            
$res GetWebspaceLog($this->repository$httpVars["file"]);
            
//print_r($res);
            
AJXP_XMLWriter::header();
            if(
is_array($res)) print(ereg_replace("[\r\n]","",str_replace('<?xml version="1.0"?>'""$res[IDX_STDOUT])));
            
AJXP_XMLWriter::close();
            exit(
1);
        }
    }
    
    function 
parseListing($xmlContent){
        
$this->listElements = array();
        
$this->listingParser xml_parser_create"UTF-8" );
    
        
//xml_parser_set_option( $this->xml_parser, XML_OPTION_CASE_FOLDING, false );
        
xml_set_object$this->listingParser$this );
        
xml_set_element_handler$this->listingParser"listingStartElement""listingEndElement");
        
xml_set_character_data_handler$this->listingParser"listingCData" );
        
xml_parse$this->listingParser$xmlContenttrue );
        
xml_parser_free$this->listingParser);
        return 
$this->listElements;
    }
    
    function 
listingStartElement($parser$tag$attributeList){
        if(
$tag == "ENTRY"){
            
$this->crtElement = array();
            if(isSet(
$attributeList["KIND"]) && $attributeList["KIND"] == "file"){
                
$this->crtElement["is_file"] = true;
            }
            else{
                
$this->crtElement["is_file"] = false;
            }
        }else if(
$tag == "NAME" || $tag == "AUTHOR" || $tag == "DATE" || $tag == "SIZE"){
            
$this->cdataBuffer "";
        }else if(
$tag == "COMMIT" && $this->crtListingMode == "file_list"){
            
$this->crtElement["revision"] = $attributeList["REVISION"];
        }
    }
    
    function 
listingEndElement($parser$tag){
        if(
$tag == "ENTRY"){
            if(
$this->crtListingMode == "file_list" || $this->crtListingMode == "search"){
                if(!
$this->crtElement["is_file"]){
                    
$this->crtElement["filesize"] = "-";
                }
                
$this->crtElement["mimestring"] = Utils::mimetype($this->crtElement["filename"],"text",!$this->crtElement["is_file"]);
                
$this->crtElement["icon"] = Utils::mimetype($this->crtElement["filename"], "image",!$this->crtElement["is_file"]);
                
$this->crtElement["is_file"] = $this->crtElement["is_file"]?"1":"0";
                
$this->listElements[] = $this->crtElement;
            }else {
                if(!
$this->crtElement["is_file"]){
                    
$this->crtElement["icon"] = CLIENT_RESOURCES_FOLDER."/images/foldericon.png";
                    
$this->crtElement["openicon"] = CLIENT_RESOURCES_FOLDER."/images/openfoldericon.png";
                    
$this->crtElement["src"] = SERVER_ACCESS."?dir=".$this->crtPath."/".$this->crtElement["text"];
                    
$this->crtElement["parentname"] = ($this->crtPath == "/"?"":$this->crtPath);
                    
$this->crtElement["action"] = "javascript:ajaxplorer.getFoldersTree().clickNode(CURRENT_ID)";
                    
$this->crtElement["is_file"] = $this->crtElement["is_file"]?"1":"0";
                    
$this->listElements[] = $this->crtElement;
                }
            }            
        }else if(
$tag == "NAME"){
            
$this->crtElement["filename"] = $this->cdataBuffer;
            
$this->crtElement["text"] = basename($this->cdataBuffer);
        }else if(
$tag == "AUTHOR" && $this->crtListingMode == "file_list"){
            
$this->crtElement["author"] = $this->cdataBuffer;
        }else if(
$tag == "SIZE" && $this->crtListingMode == "file_list"){
            
$this->crtElement["filesize"] = Utils::roundSize(intval($this->cdataBuffer));
        }else if(
$tag == "DATE" && $this->crtListingMode == "file_list"){
            
$date $this->cdataBuffer;
            
$split split("T",$date);
            
$realDate $split[0];
            
$split split("\."$split[1]);
            
$realTime $split[0];
            
$this->crtElement["modiftime"] = date("d/m/Y H:i"strtotime($realDate." ".$realTime));
        }
    }
    
    function 
listingCData($parser$cData){
        
$this->cdataBuffer .= $cData;
    }
    
}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by PinoyWH1Z | C99Shell Github | Generation time: 0.0121 ]--