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

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/local/lib/php/tests/DB/tests/   drwxr-xr-x
Free 318.3 GB of 458.09 GB (69.48%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


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

/**
 * Tests the drivers' error mapping
 *
 * Executed by driver/10errormap.phpt
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   Database
 * @package    DB
 * @author     Daniel Convissor <danielc@php.net>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    $Id: errors.inc,v 1.35 2005/02/28 02:02:41 danielc Exp $
 * @link       http://pear.php.net/package/DB
 */

/**
 * Determine if the error from the driver matches the error we expect
 *
 * If things are as we expect, print out "matches expected outcome"
 *
 * If things go wrong, print "UNEXPECTED OUTCOME" and display the
 * error's information.
 *
 * @param object  $e                 the DB_Error object from the query
 * @param int     $expected_db_code  the DB_ERROR* constant to expect
 * @param boolean $should_be_error   does the DBMS consider this an error?
 *
 * @return void
 */
function check_error($e$expected_db_code$should_be_error true) {
    if (
$should_be_error) {
        if (
DB::isError($e)) {
            if (
$e->getCode() == $expected_db_code) {
                print 
"matches expected outcome\n";
            } else {
                print 
"UNEXPECTED OUTCOME...\n";
                print 
'    PEAR::DB errorcode: ' $e->getCode() . "\n";
                print 
'    ' $e->getUserInfo() . "\n";
            }
        } else {
            print 
"\n    UNEXPECTED OUTCOME... expected error but it wasn't\n";
        }
    } else {
        if (
DB::isError($e)) {
            print 
"UNEXPECTED OUTCOME... didn't expect error but it was\n";
            print 
'    PEAR::DB errorcode: ' $e->getCode() . "\n";
            print 
'    ' $e->getUserInfo() . "\n";
        } else {
            print 
"matches expected outcome\n";
        }
    }
}

/**
 * Local error callback handler
 * 
 * @param object  $o  PEAR error object automatically passed to this method
 * @return void
 * @see PEAR::setErrorHandling()
 */
function pe($o) {
    print 
"\n---------------\n";
    print 
"Having problems creating a table for testing...\n";
    print 
$o->getDebugInfo() . "\n";
    print 
"---------------\n";
}


$dbh->setErrorHandling(PEAR_ERROR_RETURN);


print 
'DB_ERROR_NOSUCHTABLE for select:  ';
$res $dbh->query('SELECT * FROM tableThatsBogus');
check_error($resDB_ERROR_NOSUCHTABLE);

print 
'DB_ERROR_NOSUCHTABLE for drop:  ';
$res drop_table($dbh'tableThatsBogus');
check_error($resDB_ERROR_NOSUCHTABLE);

print 
'DB_ERROR_NOT_FOUND for drop index:  ';
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'fbsql:fbsql':
    case 
'ibase:firebird':
    case 
'ibase:ibase':
    case 
'ifx:ifx':
    case 
'odbc:db2':
    case 
'oci8:oci8':
    case 
'pgsql:pgsql':
    case 
'sqlite:sqlite':
        
$res $dbh->query('DROP INDEX fakeindex');
        break;
    case 
'mssql:mssql':
    case 
'sybase:sybase':
        
$res $dbh->query('DROP INDEX phptest.fakeindex');
        break;
    case 
'msql:msql':
        
$res $dbh->query('DROP INDEX fakeindex FROM phptest');
        break;
    default:
        
$res $dbh->query('DROP INDEX fakeindex ON phptest');
}
check_error($resDB_ERROR_NOT_FOUND);


print 
'DB_ERROR_ALREADY_EXISTS for create table:  ';
$res $dbh->query($test_mktable_query);
check_error($resDB_ERROR_ALREADY_EXISTS);

print 
'DB_ERROR_ALREADY_EXISTS for create index:  ';
$res drop_table($dbh'a');
$dbh->pushErrorHandling(PEAR_ERROR_CALLBACK'pe');
$res $dbh->query('CREATE TABLE a (a INTEGER)');
$dbh->popErrorHandling();
$res $dbh->query('CREATE INDEX aa_idx ON a (a)');
$res $dbh->query('CREATE INDEX aa_idx ON a (a)');
switch (
$dbh->phptype) {
    case 
'fbsql':
        
// FrontBase doesn't assign a specific code for this yet.
        
check_error($resDB_ERROR_ALREADY_EXISTSfalse);
        break;
    default:
        
check_error($resDB_ERROR_ALREADY_EXISTS);
}
$res drop_table($dbh'a');


print 
'DB_ERROR_CONSTRAINT for primary key insert duplicate:  ';
$res drop_table($dbh'a');
$dbh->pushErrorHandling(PEAR_ERROR_CALLBACK'pe');
switch (
$dbh->phptype) {
    case 
'msql':
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL)');
        
$res $dbh->query('CREATE UNIQUE INDEX apk ON a (a)');
        break;
    default:
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL, PRIMARY KEY (a))');
}
$dbh->popErrorHandling();
$res $dbh->query('INSERT INTO a VALUES (1)');
$res $dbh->query('INSERT INTO a VALUES (1)');
check_error($resDB_ERROR_CONSTRAINT);


print 
'DB_ERROR_CONSTRAINT for primary key update duplicate:  ';
$res $dbh->query('INSERT INTO a VALUES (2)');
$res $dbh->query('UPDATE a SET a=1 WHERE a=2');
check_error($resDB_ERROR_CONSTRAINT);


print 
'DB_ERROR_CONSTRAINT for unique key insert duplicate:  ';
$res drop_table($dbh'a');
$dbh->pushErrorHandling(PEAR_ERROR_CALLBACK'pe');
switch (
$dbh->phptype) {
    case 
'msql':
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL)');
        
$res $dbh->query('CREATE UNIQUE INDEX auk ON a (a)');
        break;
    default:
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL, UNIQUE (a))');
}
$dbh->popErrorHandling();
$res $dbh->query('INSERT INTO a VALUES (1)');
$res $dbh->query('INSERT INTO a VALUES (1)');
check_error($resDB_ERROR_CONSTRAINT);


print 
'DB_ERROR_CONSTRAINT for unique key update duplicate:  ';
$res $dbh->query('INSERT INTO a VALUES (2)');
$res $dbh->query('UPDATE a SET a=1 WHERE a=2');
check_error($resDB_ERROR_CONSTRAINT);


print 
'DB_ERROR_CONSTRAINT for foreign key on insert:  ';
$res drop_table($dbh'b');
$res drop_table($dbh'a');
$dbh->pushErrorHandling(PEAR_ERROR_CALLBACK'pe');
switch (
$dbh->phptype) {
    case 
'mysql':
    case 
'mysqli':
        
$res $dbh->query('CREATE TABLE a (a INT NOT NULL, '
                    
'PRIMARY KEY (a)) '
                    
'TYPE=INNODB');
        
$res $dbh->query('CREATE TABLE b (b INT, '
                    
'INDEX par_ind (b), '
                    
'FOREIGN KEY (b) REFERENCES a (a)) '
                    
'TYPE=INNODB');
        
$dbh->popErrorHandling();
        break;

    case 
'msql':
        
// msql does not support foreign keys
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL)');
        
$res $dbh->query('CREATE UNIQUE INDEX auk ON a (a)');
        
$dbh->popErrorHandling();
        
$res $dbh->query('CREATE TABLE b (b INTEGER REFERENCES a (a))');
        if (
DB::isError($res)) {
            print 
"matches expected outcome\n";
            print 
"DB_ERROR_CONSTRAINT for foreign key on delete:  matches expected outcome\n";
        } else {
            print 
"WOW, it seems mSQL now supports references\n";
            print 
"WOW, it seems mSQL now supports references\n";
        }
        break;

    default:
        
$res $dbh->query('CREATE TABLE a (a INTEGER NOT NULL, PRIMARY KEY (a))');
        
$res $dbh->query('CREATE TABLE b (b INTEGER REFERENCES a (a))');
        
$dbh->popErrorHandling();
}

if (
$dbh->phptype != 'msql') {
    
$res $dbh->query('INSERT INTO a (a) values (1)');
    
$res $dbh->query('INSERT INTO b (b) values (2)');
    switch (
$dbh->phptype) {
        case 
'sqlite':
            
check_error($resDB_ERROR_CONSTRAINTfalse);
            break;
        default:
            
check_error($resDB_ERROR_CONSTRAINT);
    }   

    print 
'DB_ERROR_CONSTRAINT for foreign key on delete:  ';
    
$res $dbh->query('INSERT INTO b (b) values (1)');
    
$res $dbh->query('DELETE FROM a WHERE a = 1');
    switch (
$dbh->phptype) {
        case 
'sqlite':
            
check_error($resDB_ERROR_CONSTRAINTfalse);
            break;
        default:
            
check_error($resDB_ERROR_CONSTRAINT);
    }
}


print 
'DB_ERROR_CONSTRAINT_NOT_NULL on insert:  ';
$res drop_table($dbh'peartestnull');
$dbh->pushErrorHandling(PEAR_ERROR_CALLBACK'pe');
$res $dbh->query('CREATE TABLE peartestnull (a CHAR(3) NOT NULL)');
$dbh->popErrorHandling();
$res $dbh->query('INSERT INTO peartestnull VALUES (NULL)');
check_error($resDB_ERROR_CONSTRAINT_NOT_NULL);


print 
'DB_ERROR_CONSTRAINT_NOT_NULL on update:  ';
$res $dbh->query("INSERT INTO peartestnull VALUES ('one')");
$res $dbh->query("UPDATE peartestnull SET a = NULL WHERE a = 'one'");
switch (
$dbh->phptype) {
    case 
'mysql':
    case 
'mysqli':
        
check_error($resDB_ERROR_CONSTRAINT_NOT_NULLfalse);
        break;
    default:
        
check_error($resDB_ERROR_CONSTRAINT_NOT_NULL);
}


print 
'DB_ERROR_NOSUCHFIELD joining ON bogus column:  ';
$res $dbh->query('SELECT * FROM phptest JOIN a ON (phptest.a = a.b)');
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'msql:msql':
    case 
'odbc:access':
        
check_error($resDB_ERROR_SYNTAX);
        break;
    default:
        
check_error($resDB_ERROR_NOSUCHFIELD);
}


print 
'DB_ERROR_NOSUCHFIELD joining USING bogus column:  ';
$res $dbh->query('SELECT * FROM phptest JOIN a USING (b)');
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'ibase:ibase':
    case 
'ibase:firebird':
    case 
'msql:msql':
    case 
'odbc:access':
    case 
'odbc:db2':
    case 
'sybase:sybase':
        
check_error($resDB_ERROR_SYNTAX);
        break;
    default:
        
check_error($resDB_ERROR_NOSUCHFIELD);
}


print 
'DB_ERROR_DIVZERO:  ';
// Interbase detects the error on fetching
$res $dbh->getAll('SELECT 0/0 FROM phptest');
switch (
$dbh->phptype) {
    case 
'odbc':
        switch (
$dbh->dbsyntax) {
            case 
'access':
                
check_error($resDB_ERROR_DIVZEROfalse);
                break;
            case 
'db2':
                
check_error($resDB_ERROR_DIVZERO);
                break;
        }
        break;
    case 
'ibase':
    case 
'ifx':
    case 
'fbsql':
    case 
'mssql':
    case 
'mysql':
    case 
'mysqli':
    case 
'sqlite':
    case 
'sybase':
        
check_error($resDB_ERROR_DIVZEROfalse);
        break;
    case 
'msql':
        
check_error($resDB_ERROR_SYNTAX);
        break;
    default:
        
check_error($resDB_ERROR_DIVZERO);
}


print 
'DB_ERROR_INVALID_NUMBER putting chars in INT column:  ';
$res $dbh->query("UPDATE phptest SET a = 'abc' WHERE a = 42");
switch (
$dbh->phptype) {
    case 
'mysql':
    case 
'mysqli':
    case 
'sqlite':
        
check_error($resDB_ERROR_INVALID_NUMBERfalse);
        break;
    default:
        
check_error($resDB_ERROR_INVALID_NUMBER);
}


print 
'DB_ERROR_INVALID_NUMBER putting float in INT column:  ';
$res $dbh->query("UPDATE phptest SET a = 8.9 WHERE a = 42");
switch (
$dbh->phptype) {
    case 
'fbsql':
    case 
'ibase':
    case 
'ifx':
    case 
'mssql':
    case 
'mysql':
    case 
'mysqli':
    case 
'oci8':
    case 
'odbc':
    case 
'pgsql':
    case 
'sqlite':
        
check_error($resDB_ERROR_INVALID_NUMBERfalse);
        break;
    default:
        
check_error($resDB_ERROR_INVALID_NUMBER);
}


print 
'DB_ERROR_INVALID_NUMBER putting excessive int in INT column:  ';
$res $dbh->query("UPDATE phptest SET a = 18446744073709551616 WHERE a = 42");
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'ibase:ibase':
    case 
'ibase:firebird':
        
check_error($resDB_ERROR_SYNTAX);
        break;
    case 
'fbsql:fbsql':
    case 
'msql:msql':
    case 
'mssql:mssql':
    case 
'mysql:mysql':
    case 
'mysqli:mysqli':
    case 
'oci8:oci8':
    case 
'odbc:access':
    case 
'sqlite:sqlite':
        
check_error($resDB_ERROR_INVALID_NUMBERfalse);
        break;
    default:
        
check_error($resDB_ERROR_INVALID_NUMBER);
}


print 
'DB_ERROR_INVALID_NUMBER putting int in CHAR column:  ';
$res $dbh->query("UPDATE phptest SET b = 8 WHERE a = 42");
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'ibase:ibase':
    case 
'ibase:firebird':
    case 
'ifx:ifx':
    case 
'mssql:mssql':
    case 
'mysql:mysql':
    case 
'mysqli:mysqli':
    case 
'oci8:oci8':
    case 
'odbc:access':
    case 
'pgsql:pgsql':
    case 
'sqlite:sqlite':
        
check_error($resDB_ERROR_INVALID_NUMBERfalse);
        break;
    default:
        
check_error($resDB_ERROR_INVALID_NUMBER);
}


print 
'DB_ERROR_NOSUCHFIELD:  ';
$res $dbh->query('SELECT e FROM phptest');
check_error($resDB_ERROR_NOSUCHFIELD);


print 
'DB_ERROR_SYNTAX:  ';
$res $dbh->query('CREATE');
check_error($resDB_ERROR_SYNTAX);


print 
'DB_ERROR_VALUE_COUNT_ON_ROW:  ';
$res $dbh->query('INSERT INTO phptest (a) VALUES (678, 2)');
switch (
$dbh->phptype) {
    case 
'msql':
        
check_error($resDB_ERROR_VALUE_COUNT_ON_ROWfalse);
        break;
    default:
        
check_error($resDB_ERROR_VALUE_COUNT_ON_ROW);
}


print 
'DB_ERROR_INVALID on CHAR column data too long:  ';
$res $dbh->query("INSERT INTO phptest (b) VALUES ('123456789.123456789.123456789.123456789.1')");
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'msql:msql':
    case 
'mssql:mssql':
    case 
'mysql:mysql':
    case 
'mysqli:mysqli':
    case 
'odbc:access':
    case 
'sqlite:sqlite':
    case 
'sybase:sybase':
        
check_error($resDB_ERROR_INVALIDfalse);
        break;
    case 
'fbsql:fbsql':
        
check_error($resDB_ERROR_TRUNCATED);
        break;
    default:
        
check_error($resDB_ERROR_INVALID);
}


print 
'DB_ERROR_INVALID on VARCHAR column data too long:  ';
$res $dbh->query("INSERT INTO phptest (d) VALUES ('123456789.123456789.1')");
switch (
$dbh->phptype ':' $dbh->dbsyntax) {
    case 
'msql:msql':
    case 
'mssql:mssql':
    case 
'mysql:mysql':
    case 
'mysqli:mysqli':
    case 
'odbc:access':
    case 
'sqlite:sqlite':
    case 
'sybase:sybase':
        
check_error($resDB_ERROR_INVALIDfalse);
        break;
    case 
'fbsql:fbsql':
        
check_error($resDB_ERROR_TRUNCATED);
        break;
    default:
        
check_error($resDB_ERROR_INVALID);
}



drop_table($dbh'phptest');
drop_table($dbh'b');
drop_table($dbh'a');
drop_table($dbh'peartestnull');

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

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