!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\dmz\php\pear\DBA\Driver\   drwxrwxrwx
Free 4.1 GB of 39.52 GB (10.37%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Builtin.php (14.79 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | Copyright (c) 2002-2003 Brent Cook                                        |
// +----------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or        |
// | modify it under the terms of the GNU Lesser General Public           |
// | License as published by the Free Software Foundation; either         |
// | version 2.1 of the License, or (at your option) any later version.   |
// |                                                                      |
// | This library 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.  See the GNU    |
// | Lesser General Public License for more details.                      |
// |                                                                      |
// | You should have received a copy of the GNU Lesser General Public     |
// | License along with this library; if not, write to the Free Software  |
// | Foundation, Inc., 59 Temple Place, Suite 330,Boston,MA 02111-1307 USA|
// +----------------------------------------------------------------------+
//
// $Id: Builtin.php,v 1.14 2007/04/16 07:52:30 davidc Exp $

require_once 'DBA.php';

/**
 * DBA_Driver_Builtin uses the builtin dba functions of PHP as the underlying
 * driver for a DBA class. Depending on the driver, this can be faster or
 * slower than the DBA_Driver_File class.
 *
 * This class has been tested with DB3 and GDBM and probably works with DB2.
 * Other drivers may have quirks that this class does not address yet. CDB
 * is known to be unsuitable as a driver due to its lack of write ability.
 *
 * @author  Brent Cook <busterb@mail.utexas.edu>
 * @version 1.0
 * @access  public
 * @package DBA
 */
class DBA_Driver_Builtin extends DBA
{

    
// {{{ instance variables
    /**
     * Name of the database
     * @access private
     */
    
var $_dbName;

    
/**
     * Indicates the current ability for read/write operations
     * @access private
     */
    
var $_writable;

    
/**
     * Indicates the current ability for read operations
     * @access private
     */
    
var $_readable;

    
/**
     * Name of the builtin dba driver to use
     * @access private
     */
    
var $_driver;

    
/**
     * Indicates the ability of the dba driver to replace values
     * @access private
     */
    
var $_hasReplace;
    
// }}}

    // {{{ DBA_Driver_Builtin($driver = 'gdbm')
    /* Constructor
     *
     * @access public
     * @param   string  $driver dba driver to use
     */
    
function DBA_Driver_Builtin($driver 'gdbm')
    {
        
// call the base constructor
        
$this->DBA();
        
$this->_driver $driver;
    }
    
// }}}

    // {{{ open($dbName='', $mode='r', $persistent=false)
    /**
     * Opens a database.
     *
     * @access public
     * @param   string  $dbName The name of a database
     * @param   string  $mode The mode in which to open a database.
     *                   'r' opens read-only.
     *                   'w' opens read-write.
     *                   'n' creates a new database and opens read-write.
     *                   'c' creates a new database if the database does not
     *                      exist and opens read-write.
     * @param   boolean $persistent Determines whether to open the database
     *                  peristently. Not supported here.
     * @return  object PEAR_Error on failure
     */
    
function open($dbName=''$mode='r'$persistent false)
    {
        if (
is_null($this->_driver)) {
            return 
$this->raiseError(DBA_ERROR_NO_DRIVER);
        }

        if (
$this->_driver == 'gdbm') {
            
$this->_hasReplace false;
        } else {
            
$this->_hasReplace true;
        }

        if (
$dbName == '') {
            return 
$this->raiseError(DBA_ERROR_NO_DBNAME);
        } else {
            
$this->_dbName $dbName;
        }

        switch (
$mode) {
            case 
'r':
                    
// open for reading
                    
$this->_writable false;
                    
$this->_readable true;
                    break;
            case 
'n':
            case 
'c':
            case 
'w':
                    
$this->_writable true;
                    
$this->_readable true;
                    break;
            default:
                return 
$this->raiseError(DBA_ERROR_INVALID_MODENULLNULL,
                    
'filemode: '.$mode);
        }

        
// open the index file
        
$params = array($dbname$mode$this->_driver);
        
        
$connect_function = !is_null($persistent) ? 'dba_popen' 'dba_open';
        
$connector        = @call_user_func($connect_function$params); 
        
        if (
PEAR::isError($connector)) {
            
$this->_writable false;
            
$this->_readable false;
            return 
$this->raiseError(DBA_ERROR_CANNOT_OPENnullnull,
                                     
'DB Name: ' $dbName ' filemode: ' $mode);
        }
        
        if (
$connector === false) {
            
$this->_writable false;
            
$this->_readable false;
            return 
$this->raiseError(DBA_ERROR_CANNOT_OPENNULLNULL,
                
'dbname: '.$dbName.' filemode: '.$mode);
        }

        
$this->_dba $connector;
    }
    
// }}}

    // {{{ close()
    /**
     * Closes an open database.
     *
     * @access  public
     * @return  object PEAR_Error on failure
     */
    
function close()
    {
        if (
$this->isOpen()) {
            
$this->_readable false;
            
$this->_writable false;
            
dba_sync($this->_dba); // db2 is known to require syncs
            
dba_close($this->_dba);
        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_OPEN);
        }
    }
    
// }}}

    // {{{ reopen($mode)
    /**
     * Reopens an already open database in read-only or write mode.
     * If the database is already in the requested mode, then this function
     * does nothing.
     *
     * @access  public
     * @param   string  $mode 'r' for read-only, 'w' for read/write
     * @return  object PEAR_Error on failure
     */
    
function reopen($mode)
    {
        if (
$this->isOpen()) {
            if ((
$mode == 'r') && $this->isWritable()) {
                
// Reopening as read-only
                
$this->close();
                return 
$this->open($this->_dbName'r');
            } elseif ((
$mode == 'w') && (!$this->isWritable)) {
                
// Reopening as read-write
                
$this->close();
                return 
$this->open($this->_dbName'w');
            }
        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_OPEN);
        }
    }
    
// }}}

    // {{{ _DBA_Driver_Builtin()
    /**
     * PEAR emulated destructor calls close on PHP shutdown
     * @access private
     */
    
function _DBA_Driver_Builtin()
    {
        
$this->close();
    }
    
// }}}

    // {{{ isOpen()
    /**
     * Returns the current open status for the database
     *
     * @access  public
     * @return  boolean true if open, false if closed 
     */
    
function isOpen()
    {
        return(
$this->_readable || $this->_writable);
    }
    
// }}}

    // {{{ isReadable()
    /**
     * Returns the current read status for the database
     *
     * @access  public
     * @return  boolean true if readable, false if not
     */
    
function isReadable()
    {
        return 
$this->_readable;
    }
    
// }}}

    // {{{ isWritable()
    /**
     * Returns the current write status for the database
     *
     * @access  public
     * @return  boolean true if writable, false if not
     */
     
function isWritable()
     {
         return 
$this->_writable;
     }
    
// }}}

    // {{{ remove($key)
    /**
     * Removes the value at location $key
     *
     * @access  public
     * @param   string  $key key to delete
     * @return  object PEAR_Error on failure
     */
    
function remove($key)
    {
        if (
$this->isWritable()) {
            if (!
dba_delete($key$this->_dba)) {
                return 
$this->raiseError(DBA_ERROR_NOT_FOUNDNULLNULL'key: '.$key);
            }
        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_WRITEABLE);
        }
    }
    
// }}}

    // {{{ fetch($key)
    /**
     * Returns the value that is stored at $key.
     *
     * @access  public
     * @param   string $key key to examine
     * @return  mixed the requested value on success, false on failure
     */
    
function fetch($key)
    {
        if (
$this->isReadable()) {
            if (
dba_exists($key$this->_dba)) {
                return 
dba_fetch($key$this->_dba);
            } else {
                return 
$this->raiseError(DBA_ERROR_NOT_FOUNDNULLNULL'key: '.$key);
            }
        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_READABLE);
        }
    }
    
// }}}

    // {{{ firstkey()
    /**
     * Returns the first key in the database
     *
     * @access  public
     * @return  mixed string on success, false on failure
     */
    
function firstkey()
    {
        if (
$this->isReadable()) {
            return 
dba_firstkey($this->_dba);
        } else {
            return 
false;
        }
    }
    
// }}}

    // {{{ size()
    /**
     * Calculates the size of the database in number of keys
     *
     * @access  public
     * @return  int    number of keys in the database
     */
    
function size()
    {
        
$key dba_firstkey($this->_dba);
        
$size 0;
        while (
$key !== false) {
            ++
$size;
            
$key dba_nextkey($this->_dba);
        }
        return 
$size;
    }
    
// }}}

    // {{{ nextkey()
    /**
     * Returns the next key in the database, false if there is a problem
     *
     * @access  public
     * @return  mixed string on success, false on failure
     */
    
function nextkey()
    {
        if (
$this->isReadable()) {
            return 
dba_nextkey($this->_dba);
        } else {
            return 
false;
        }
    }
    
// }}}

    // {{{ getkeys()
    /**
     * Returns all keys in the database
     *
     * @access  public
     * @return  mixed  array
     */
    
function getkeys()
    {
        
$keys = array();
        if (
$this->isReadable()) {
            
$key $this->firstkey();
            while (
$key !== FALSE) {
                
$keys[] = $key;
                
$key $this->nextkey($key);
            }
        }
        return 
$keys;
    }
    
// }}}

    // {{{ insert($key, $value)
    /**
     * Inserts a new value at $key. Will not overwrite if the key/value pair
     * already exist
     *
     * @access public
     * @param   string  $key key to insert
     * @param   string  $value value to store
     * @return  object PEAR_Error on failure
     */
    
function insert($key$value)
    {
        if (
$this->isWritable()) {

            if ((!
$this->_hasReplace && dba_exists($key$this->_dba)) ||
                (!
dba_insert($key$value$this->_dba))) {
                return 
$this->raiseError(DBA_ERROR_ALREADY_EXISTSNULLNULL,
                    
'key: '.$key);
            }
        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_WRITEABLE);
        }
    }
    
// }}}

    // {{{ replace($key, $value)
    /**
     * Inserts a new value at key. If the key/value pair
     * already exist, overwrites the value
     *
     * @access public
     * @param   $key    string the key to insert
     * @param   $value  string the value to store
     * @return  object  PEAR_Error on failure
     */
    
function replace($key$value)
    {
        if (
$this->isWritable()) {

            if (
$this->_hasReplace) {
                return 
dba_replace($key$value$this->_dba);
            } else {
                
$r true;
                if (
dba_exists($key$this->_dba)) {
                    
$r dba_delete($key$this->_dba);
                }
                return 
$r && dba_insert($key$value$this->_dba);
            }

        } else {
            return 
$this->raiseError(DBA_ERROR_NOT_WRITEABLE);
        }
    }
    
// }}}
    
    // {{{ create($dbName, $driver='gdbm')
    /**
     * Creates a new database file if one does not exist. If it already exists,
     * updates the last-updated timestamp on the database
     *
     * @access  public
     * @param   string  $dbName the database to create
     * @param   string  $driver the dba driver to use
     * @return  object  PEAR_Error on failure
     */
    
function create($dbName$driver='gdbm')
    {
        
$db dba_open($dbName'n'$driver);

        if (
PEAR::isError($db)) {
            return 
$this->raiseError(DBA_ERROR_CANNOT_CREATENULLNULL,
                                     
'dbname: '.$dbname);
        }

        if (!((
$db !== false) && dba_close($db))) {
            return 
$this->raiseError(DBA_ERROR_CANNOT_CREATENULLNULL,
                
'dbname: '.$dbname);
        }
    }
    
// }}}

    // {{{ db_exists($dbName)
    /**
     * Indicates whether a database with given name exists
     *
     * @access  public
     * @param   string  $dbName the database name to check for existence
     * @return  boolean true if the database exists, false if it doesn't
     */
    
function db_exists($dbName)
    {
        return 
file_exists($dbName);
    }
    
// }}}

    // {{{ db_drop($dbName)
    /**
     * Removes a database from existence
     *
     * @access  public
     * @param   string  $dbName the database name to drop
     * @return  object  PEAR_Error on failure
     */
    
function db_drop($dbName)
    {
        if (
DBA_Driver_Builtin::db_exists($dbName)) {
            if (!
unlink($dbName)) {
                return 
$this->raiseError(DBA_ERROR_CANNOT_DROPNULLNULL,
                    
'dbname: '.$dbName);
            }
        } else {
            return 
$this->raiseError(DBA_ERROR_NOSUCHDBNULLNULL,
                
'dbname: '.$dbName);
        }
    }
    
// }}}

    // {{{ drop()
    /**
     * Removes the last open database from existence
     *
     * @access  public
     * @return  object  PEAR_Error on failure
     */
    
function drop()
    {
        
$this->close();
        return 
$this->db_drop($this->_dbName);
    }
    
// }}}

    // {{{ exists($key)
    /**
     * Check whether key exists
     *
     * @access  public
     * @param   string   $key
     * @return  boolean true if the key exists, false if it doesn't
     */
    
function exists($key)
    {
        return(
$this->isOpen() && dba_exists($key$this->_dba));
    }
    
// }}}

    // {{{ sync()
    /**
     * Synchronizes an open database to disk
     * @access public
     */
    
function sync()
    {
        return 
dba_sync($this->_dba);
    }
    
// }}}

    // {{{ optimize()
    /**
     * Optimizes an open database
     * @access public
     */
    
function optimize()
    {
        return 
dba_optimize($this->_dba);
    }
    
// }}}
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--