!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:\Intranet\C\xampp\php\PEAR\HTML\QuickForm\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
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:     autocomplete.php (8.43 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Author:  Matteo Di Giovinazzo <matteodg@infinito.it>                 |
// |                                                                      |
// | For the JavaScript code thanks to Martin Honnen and                  |
// | Nicholas C. Zakas                                                    |
// | See:                                                                 |
// |      http://www.faqts.com/knowledge_base/view.phtml/aid/13562        |
// | and                                                                  |
// |      http://www.sitepoint.com/article/1220                           |
// +----------------------------------------------------------------------+
//
// $Id: autocomplete.php,v 1.6 2005/08/05 16:33:56 avb Exp $


require_once("HTML/QuickForm/text.php");


/**
 * Class to dynamically create an HTML input text element that
 * at every keypressed javascript event, check in an array of options
 * if there's a match and autocomplete the text in case of match.
 *
 * Ex:
 * $autocomplete =& $form->addElement('autocomplete', 'fruit', 'Favourite fruit:');
 * $options = array("Apple", "Orange", "Pear", "Strawberry");
 * $autocomplete->setOptions($options);
 *
 * @author       Matteo Di Giovinazzo <matteodg@infinito.it>
 */
class HTML_QuickForm_autocomplete extends HTML_QuickForm_text
{
    
// {{{ properties

    /**
     * Options for the autocomplete input text element
     *
     * @var       array
     * @access    private
     */
    
var $_options = array();

    
/**
     * "One-time" javascript (containing functions), see bug #4611
     *
     * @var     string
     * @access  private
     */
    
var $_js '';

    
// }}}
    // {{{ constructor

    /**
     * Class constructor
     *
     * @param     string    $elementName    (optional)Input field name attribute
     * @param     string    $elementLabel   (optional)Input field label in form
     * @param     array     $options        (optional)Autocomplete options
     * @param     mixed     $attributes     (optional)Either a typical HTML attribute string
     *                                      or an associative array. Date format is passed along the attributes.
     * @access    public
     * @return    void
     */
    
function HTML_QuickForm_autocomplete($elementName null$elementLabel null$options null$attributes null)
    {
        
$this->HTML_QuickForm_text($elementName$elementLabel$attributes);
        
$this->_persistantFreeze true;
        
$this->_type 'autocomplete';
        if (isset(
$options)) {
            
$this->setOptions($options);
        }
    } 
//end constructor

    // }}}
    // {{{ setOptions()

    /**
     * Sets the options for the autocomplete input text element
     *
     * @param     array    $options    Array of options for the autocomplete input text element
     * @access    public
     * @return    void
     */
    
function setOptions($options)
    {
        
$this->_options array_values($options);
    } 
// end func setOptions

    // }}}
    // {{{ toHtml()

    /**
     * Returns Html for the autocomplete input text element
     *
     * @access      public
     * @return      string
     */
    
function toHtml()
    {
        
// prevent problems with grouped elements
        
$arrayName str_replace(array('['']'), array('__'''), $this->getName()) . '_values';

        
$this->updateAttributes(array(
            
'onkeypress' => 'return autocomplete(this, event, ' $arrayName ');'
        
));
        if (
$this->_flagFrozen) {
            
$js '';
        } else {
            
$js "<script type=\"text/javascript\">\n//<![CDATA[\n";
            if (!
defined('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS')) {
                
$this->_js .= <<<EOS

/* begin javascript for autocomplete */
function setSelectionRange(input, selectionStart, selectionEnd) {
    if (input.setSelectionRange) {
        input.setSelectionRange(selectionStart, selectionEnd);
    }
    else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd("character", selectionEnd);
        range.moveStart("character", selectionStart);
        range.select();
    }
    input.focus();
}

function setCaretToPosition(input, position) {
    setSelectionRange(input, position, position);
}

function replaceSelection (input, replaceString) {
    var len = replaceString.length;
    if (input.setSelectionRange) {
        var selectionStart = input.selectionStart;
        var selectionEnd = input.selectionEnd;

        input.value = input.value.substring(0, selectionStart) + replaceString + input.value.substring(selectionEnd);
        input.selectionStart  = selectionStart + len;
        input.selectionEnd  = selectionStart + len;
    }
    else if (document.selection) {
        var range = document.selection.createRange();
        var saved_range = range.duplicate();

        if (range.parentElement() == input) {
            range.text = replaceString;
            range.moveEnd("character", saved_range.selectionStart + len);
            range.moveStart("character", saved_range.selectionStart + len);
            range.select();
        }
    }
    input.focus();
}


function autocompleteMatch (text, values) {
    for (var i = 0; i < values.length; i++) {
        if (values[i].toUpperCase().indexOf(text.toUpperCase()) == 0) {
            return values[i];
        }
    }

    return null;
}

function autocomplete(textbox, event, values) {
    if (textbox.setSelectionRange || textbox.createTextRange) {
        switch (event.keyCode) {
            case 38:    // up arrow
            case 40:    // down arrow
            case 37:    // left arrow
            case 39:    // right arrow
            case 33:    // page up
            case 34:    // page down
            case 36:    // home
            case 35:    // end
            case 13:    // enter
            case 9:     // tab
            case 27:    // esc
            case 16:    // shift
            case 17:    // ctrl
            case 18:    // alt
            case 20:    // caps lock
            case 8:     // backspace
            case 46:    // delete
                return true;
                break;

            default:
                var c = String.fromCharCode(
                    (event.charCode == undefined) ? event.keyCode : event.charCode
                );
                replaceSelection(textbox, c);
                sMatch = autocompleteMatch(textbox.value, values);
                var len = textbox.value.length;
                
                if (sMatch != null) {
                    textbox.value = sMatch;
                    setSelectionRange(textbox, len, textbox.value.length);
                }
                return false;
        }
    }
    else {
        return true;
    }
}
/* end javascript for autocomplete */

EOS;
                
define('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS'true);
            }
            
$jsEscape = array(
                
"\r"    => '\r',
                
"\n"    => '\n',
                
"\t"    => '\t',
                
"'"     => "\\'",
                
'"'     => '\"',
                
'\\'    => '\\\\'
            
);

            
$js .= $this->_js;
            
$js .= 'var ' $arrayName " = new Array();\n";
            for (
$i 0$i count($this->_options); $i++) {
                
$js .= $arrayName '[' $i "] = '" strtr($this->_options[$i], $jsEscape) . "';\n";
            }
            
$js .= "//]]>\n</script>";
        }
        return 
$js parent::toHtml();
    }
// end func toHtml

    // }}}
// end class HTML_QuickForm_autocomplete
?>

:: 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 ]--