!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.12 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g. PHP/5.2.4-2ubuntu5.12 

uname -a: Linux forum.circlefusion.com 2.6.24-19-server #1 SMP Wed Jun 18 15:18:00 UTC 2008 i686 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/home/doku/axrepos/axess/old/wiki/bin/   drwxrwxr-x
Free 11.53 GB of 97.11 GB (11.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     dwpage.php (9.19 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/php -d short_open_tag=on
<?php
#------------------------------------------------------------------------------
if ('cli' != php_sapi_name()) die();

if(!
defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/');
require_once 
DOKU_INC.'inc/init.php';
require_once 
DOKU_INC.'inc/common.php';
require_once 
DOKU_INC.'inc/cliopts.php';

#------------------------------------------------------------------------------
function usage($action) {
    switch ( 
$action ) {
        case 
'checkout':
           print 
"Usage: dwpage.php [opts] checkout <wiki:page> [working_file]

    Checks out a file from the repository, using the wiki id and obtaining
    a lock for the page.
    If a working_file is specified, this is where the page is copied to.
    Otherwise defaults to the same as the wiki page in the current
    working directory.

    EXAMPLE
    $ ./dwpage.php checkout wiki:syntax ./new_syntax.txt

    OPTIONS
        -h, --help=<action>: get help
        -f: force obtaining a lock for the page (generally bad idea)
"
;
        break;
        case 
'commit':
           print 
"Usage: dwpage.php [opts] -m \"Msg\" commit <working_file> <wiki:page>

    Checks in the working_file into the repository using the specified
    wiki id, archiving the previous version.

    EXAMPLE
    $ ./dwpage.php -m \"Some message\" commit ./new_syntax.txt wiki:syntax

    OPTIONS
        -h, --help=<action>: get help
        -f: force obtaining a lock for the page (generally bad idea)
        -m (required): Summary message describing the change
"
;
        break;
        case 
'lock':
           print 
"Usage: dwpage.php [opts] lock <wiki:page>

    Obtains or updates a lock for a wiki page

    EXAMPLE
    $ ./dwpage.php lock wiki:syntax

    OPTIONS
        -h, --help=<action>: get help
        -f: force obtaining a lock for the page (generally bad idea)
"
;
        break;
        case 
'unlock':
           print 
"Usage: dwpage.php [opts] unlock <wiki:page>

    Removes a lock for a wiki page.

    EXAMPLE
    $ ./dwpage.php unlock wiki:syntax

    OPTIONS
        -h, --help=<action>: get help
        -f: force obtaining a lock for the page (generally bad idea)
"
;
        break;
        default:
            print 
"Usage: dwpage.php [opts] <action>

    Utility to help command line Dokuwiki page editing, allow
    pages to be checked out for editing then committed after changes

    Normal operation would be;



    ACTIONS
        checkout: see $ dwpage.php --help=checkout
        commit: see $ dwpage.php --help=commit
        lock: see $ dwpage.php --help=lock

    OPTIONS
        -h, --help=<action>: get help
            e.g. $ ./dwpage.php -hcommit
            e.g. $ ./dwpage.php --help=commit
"
;
        break;
    }
}

#------------------------------------------------------------------------------
function getUser() {
    
$user getenv('USER');
    if (empty (
$username)) {
        
$user getenv('USERNAME');
    } else {
        return 
$user;
    }
    if (empty (
$username)) {
        
$user 'admin';
    }
    return 
$user;
}

#------------------------------------------------------------------------------
function getSuppliedArgument($OPTS$short$long) {
    
$arg $OPTS->get($short);
    if ( 
is_null($arg) ) {
        
$arg $OPTS->get($long);
    }
    return 
$arg;
}

#------------------------------------------------------------------------------
function obtainLock($WIKI_ID) {

    global 
$USERNAME;

    if ( !
file_exists(wikiFN($WIKI_ID)) ) {
        
fwriteSTDERR"$WIKI_ID does not yet exist\n");
    }

    
$_SERVER['REMOTE_USER'] = $USERNAME;
    if ( 
checklock($WIKI_ID) ) {
        
fwriteSTDERR"Page $WIKI_ID is already locked by another user\n");
        exit(
1);
    }

    
lock($WIKI_ID);

    
$_SERVER['REMOTE_USER'] = '_'.$USERNAME.'_';

    if ( 
checklock($WIKI_ID) != $USERNAME ) {

        
fwriteSTDERR"Unable to obtain lock for $WIKI_ID\n" );
        exit(
1);

    }
}

#------------------------------------------------------------------------------
function clearLock($WIKI_ID) {

    global 
$USERNAME ;

    if ( !
file_exists(wikiFN($WIKI_ID)) ) {
        
fwriteSTDERR"$WIKI_ID does not yet exist\n");
    }

    
$_SERVER['REMOTE_USER'] = $USERNAME;
    if ( 
checklock($WIKI_ID) ) {
        
fwriteSTDERR"Page $WIKI_ID is locked by another user\n");
        exit(
1);
    }

    
unlock($WIKI_ID);

    if ( 
file_exists(wikiLockFN($WIKI_ID)) ) {
        
fwriteSTDERR"Unable to clear lock for $WIKI_ID\n" );
        exit(
1);
    }

}

#------------------------------------------------------------------------------
function deleteLock($WIKI_ID) {

    
$wikiLockFN wikiLockFN($WIKI_ID);

    if ( 
file_exists($wikiLockFN) ) {
        if ( !
unlink($wikiLockFN) ) {
            
fwriteSTDERR"Unable to delete $wikiLockFN\n" );
            exit(
1);
        }
    }

}

#------------------------------------------------------------------------------
$USERNAME getUser();
$CWD getcwd();
$SYSTEM_ID '127.0.0.1';

#------------------------------------------------------------------------------
$OPTS Doku_Cli_Opts::getOptions(
    
__FILE__,
    
'h::fm:u:s:',
    array(
        
'help==',
        
'user=',
        
'system=',
        )
);

if ( 
$OPTS->isError() ) {
    print 
$OPTS->getMessage()."\n";
    exit(
1);
}

if ( 
$OPTS->has('h') or $OPTS->has('help') or !$OPTS->hasArgs() ) {
    
usage(getSuppliedArgument($OPTS,'h','help'));
    exit(
0);
}

if ( 
$OPTS->has('u') or $OPTS->has('user') ) {
    
$USERNAME getSuppliedArgument($OPTS,'u','user');
}

if ( 
$OPTS->has('s') or $OPTS->has('system') ) {
    
$SYSTEM_ID getSuppliedArgument($OPTS,'s','system');
}

#------------------------------------------------------------------------------
switch ( $OPTS->arg(0) ) {

    
#----------------------------------------------------------------------
    
case 'checkout':

        
$WIKI_ID $OPTS->arg(1);

        if ( !
$WIKI_ID ) {
            
fwriteSTDERR"Wiki page ID required\n");
            exit(
1);
        }

        
$WIKI_FN wikiFN($WIKI_ID);

        if ( !
file_exists($WIKI_FN) ) {
            
fwriteSTDERR"$WIKI_ID does not yet exist\n");
            exit(
1);
        }

        
$TARGET_FN $OPTS->arg(2);

        if ( empty(
$TARGET_FN) ) {
            
$TARGET_FN getcwd().'/'.basename($WIKI_FN);
        }

        if ( !
file_exists(dirname($TARGET_FN)) ) {
            
fwriteSTDERR"Directory ".dirname($TARGET_FN)." does not exist\n");
            exit(
1);
        }

        if ( 
stristrrealpath(dirname($TARGET_FN)), realpath($conf['datadir']) ) !== false ) {
            
fwriteSTDERR"Attempt to check out file into data directory - not allowed\n");
            exit(
1);
        }

        if ( 
$OPTS->has('f') ) {
            
deleteLock($WIKI_ID);
        }

        
obtainLock($WIKI_ID);

        
# Need to lock the file first?
        
if ( !copy($WIKI_FN$TARGET_FN) ) {
            
fwriteSTDERR"Unable to copy $WIKI_FN to $TARGET_FN\n");
            
clearLock($WIKI_ID);
            exit(
1);
        }

        print 
"$WIKI_ID > $TARGET_FN\n";
        exit(
0);

    break;

    
#----------------------------------------------------------------------
    
case 'commit':

        
$TARGET_FN $OPTS->arg(1);

        if ( !
$TARGET_FN ) {
            
fwriteSTDERR"Target filename required\n");
            exit(
1);
        }

        if ( !
file_exists($TARGET_FN) ) {
            
fwriteSTDERR"$TARGET_FN does not exist\n");
            exit(
1);
        }

        if ( !
is_readable($TARGET_FN) ) {
            
fwriteSTDERR"Cannot read from $TARGET_FN\n");
            exit(
1);
        }

        
$WIKI_ID $OPTS->arg(2);

        if ( !
$WIKI_ID ) {
            
fwriteSTDERR"Wiki page ID required\n");
            exit(
1);
        }

        if ( !
$OPTS->has('m') ) {
            
fwriteSTDERR"Summary message required\n");
            exit(
1);
        }

        if ( 
$OPTS->has('f') ) {
            
deleteLock($WIKI_ID);
        }

        
$_SERVER['REMOTE_USER'] = $USERNAME;
        if ( 
checklock($WIKI_ID) ) {
            
fwriteSTDERR"$WIKI_ID is locked by another user\n");
            exit(
1);
        }

        
obtainLock($WIKI_ID);

        
saveWikiText($WIKI_IDfile_get_contents($TARGET_FN), $OPTS->get('m'));

        
clearLock($WIKI_ID);

        exit(
0);

    break;

    
#----------------------------------------------------------------------
    
case 'lock':

        
$WIKI_ID $OPTS->arg(1);

        if ( !
$WIKI_ID ) {
            
fwriteSTDERR"Wiki page ID required\n");
            exit(
1);
        }

        if ( 
$OPTS->has('f') ) {
            
deleteLock($WIKI_ID);
        }

        
obtainLock($WIKI_ID);

        print 
"Locked : $WIKI_ID\n";
        exit(
0);

    break;

    
#----------------------------------------------------------------------
    
case 'unlock':

        
$WIKI_ID $OPTS->arg(1);

        if ( !
$WIKI_ID ) {
            
fwriteSTDERR"Wiki page ID required\n");
            exit(
1);
        }

        if ( 
$OPTS->has('f') ) {
            
deleteLock($WIKI_ID);
        } else {
            
clearLock($WIKI_ID);
        }

        print 
"Unlocked : $WIKI_ID\n";
        exit(
0);

    break;

    
#----------------------------------------------------------------------
    
default:

        
fwriteSTDERR"Invalid action ".$OPTS->arg(0)."\n" );
        exit(
1);

    break;

}


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0186 ]--