!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)

/usr/share/roundcube/program/lib/Roundcube/   drwxr-xr-x
Free 1.42 GB of 7.22 GB (19.68%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     rcube_db_sqlsrv.php (4.44 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 +-----------------------------------------------------------------------+
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2005-2012, The Roundcube Dev Team                       |
 |                                                                       |
 | Licensed under the GNU General Public License version 3 or            |
 | any later version with exceptions for skins & plugins.                |
 | See the README file for a full license statement.                     |
 |                                                                       |
 | PURPOSE:                                                              |
 |   Database wrapper class that implements PHP PDO functions            |
 |   for MS SQL Server database                                          |
 +-----------------------------------------------------------------------+
 | Author: Aleksander Machniak <alec@alec.pl>                            |
 +-----------------------------------------------------------------------+
*/

/**
 * Database independent query interface
 * This is a wrapper for the PHP PDO
 *
 * @package    Framework
 * @subpackage Database
 */
class rcube_db_sqlsrv extends rcube_db
{
    public 
$db_provider 'mssql';

    
/**
     * Driver initialization
     */
    
protected function init()
    {
        
$this->options['identifier_start'] = '[';
        
$this->options['identifier_end'] = ']';
    }

    
/**
     * Database character set setting
     */
    
protected function set_charset($charset)
    {
        
// UTF-8 is default
    
}

    
/**
     * Return SQL function for current time and date
     *
     * @return string SQL function to use in query
     */
    
public function now()
    {
        return 
"getdate()";
    }

    
/**
     * Return SQL statement to convert a field value into a unix timestamp
     *
     * This method is deprecated and should not be used anymore due to limitations
     * of timestamp functions in Mysql (year 2038 problem)
     *
     * @param string $field Field name
     *
     * @return string SQL statement to use in query
     * @deprecated
     */
    
public function unixtimestamp($field)
    {
        return 
"DATEDIFF(second, '19700101', $field) + DATEDIFF(second, GETDATE(), GETUTCDATE())";
    }

    
/**
     * Abstract SQL statement for value concatenation
     *
     * @return string SQL statement to be used in query
     */
    
public function concat(/* col1, col2, ... */)
    {
        
$args func_get_args();

        if (
is_array($args[0])) {
            
$args $args[0];
        }

        return 
'(' join('+'$args) . ')';
    }

    
/**
     * Adds TOP (LIMIT,OFFSET) clause to the query
     *
     * @param string $query  SQL query
     * @param int    $limit  Number of rows
     * @param int    $offset Offset
     *
     * @return string SQL query
     */
    
protected function set_limit($query$limit 0$offset 0)
    {
        
$limit  intval($limit);
        
$offset intval($offset);
        
$end    $offset $limit;

        
// query without OFFSET
        
if (!$offset) {
            
$query preg_replace('/^SELECT\s/i'"SELECT TOP $limit "$query);
            return 
$query;
        }

        
$orderby stristr($query'ORDER BY');
        
$offset += 1;

        if (
$orderby !== false) {
            
$query trim(substr($query0, -strlen($orderby)));
        }
        else {
            
// it shouldn't happen, paging without sorting has not much sense
            // @FIXME: I don't know how to build paging query without ORDER BY
            
$orderby "ORDER BY 1";
        }

        
$query preg_replace('/^SELECT\s/i'''$query);
        
$query "WITH paging AS (SELECT ROW_NUMBER() OVER ($orderby) AS [RowNumber], $query)"
            
" SELECT * FROM paging WHERE [RowNumber] BETWEEN $offset AND $end ORDER BY [RowNumber]";

        return 
$query;
    }

    
/**
     * Returns PDO DSN string from DSN array
     */
    
protected function dsn_string($dsn)
    {
        
$params = array();
        
$result 'sqlsrv:';

        if (
$dsn['hostspec']) {
            
$host $dsn['hostspec'];

            if (
$dsn['port']) {
                
$host .= ',' $dsn['port'];
            }
            
$params[] = 'Server=' $host;
        }

        if (
$dsn['database']) {
            
$params[] = 'Database=' $dsn['database'];
        }

        if (!empty(
$params)) {
            
$result .= implode(';'$params);
        }

        return 
$result;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

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