PageRenderTime 7ms CodeModel.GetById 1ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/phpmyadmin/libraries/sqlvalidator.lib.php

https://bitbucket.org/adarshj/convenient_website
PHP | 98 lines | 29 code | 13 blank | 56 comment | 9 complexity | e4d849b06cb93f67c84be831c6a6795b MD5 | raw file
 1<?php
 2/* vim: set expandtab sw=4 ts=4 sts=4: */
 3/**
 4 * SQL Validator interface for phpMyAdmin
 5 *
 6 * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
 7 * http://www.orbis-terrarum.net/?l=people.robbat2
 8 *
 9 * This function uses the Mimer SQL Validator service
10 * <http://developer.mimer.com/validator/index.htm> from phpMyAdmin
11 *
12 * Copyright for Server side validator systems:
13 * "All SQL statements are stored anonymously for statistical purposes.
14 * Mimer SQL Validator, Copyright 2002 Upright Database Technology.
15 * All rights reserved."
16 *
17 * All data is transported over HTTP-SOAP
18 * And uses the PEAR SOAP Module
19 *
20 * Install instructions for PEAR SOAP
21 * Make sure you have a really recent PHP with PEAR support
22 * run this: "pear install Mail_Mime Net_DIME SOAP"
23 *
24 * Enable the SQL Validator options in the configuration file
25 * $cfg['SQLQuery']['Validate'] = true;
26 * $cfg['SQLValidator']['use']  = true;
27 *
28 * Also set a username and password if you have a private one
29 *
30 * @package PhpMyAdmin
31 */
32if (! defined('PHPMYADMIN')) {
33    exit;
34}
35
36/**
37 * We need the PEAR libraries, so do a minimum version check first
38 * I'm not sure if PEAR was available before this point
39 * For now we actually use a configuration flag
40 */
41if ($cfg['SQLValidator']['use'] == true) {
42    include_once './libraries/sqlvalidator.class.php';
43} // if ($cfg['SQLValidator']['use'] == true)
44
45
46/**
47 * This function utilizes the Mimer SQL Validator service
48 * to validate an SQL query
49 *
50 * <http://developer.mimer.com/validator/index.htm>
51 *
52 * @param string   SQL query to validate
53 *
54 * @return  string   Validator result string
55 *
56 * @global  array    The PMA configuration array
57 */
58function PMA_validateSQL($sql)
59{
60    global $cfg;
61
62    $str = '';
63
64    if ($cfg['SQLValidator']['use']) {
65        if (isset($GLOBALS['sqlvalidator_error'])
66            && $GLOBALS['sqlvalidator_error']) {
67            $str = sprintf(__('The SQL validator could not be initialized. Please check if you have installed the necessary PHP extensions as described in the %sdocumentation%s.'), '<a href="./Documentation.html#faqsqlvalidator" target="documentation">', '</a>');
68        } else {
69            // create new class instance
70            $srv = new PMA_SQLValidator();
71
72            // Checks for username settings
73            // The class defaults to anonymous with an empty password
74            // automatically
75            if ($cfg['SQLValidator']['username'] != '') {
76                $srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']);
77            }
78
79            // Identify ourselves to the server properly...
80            $srv->appendCallingProgram('phpMyAdmin', PMA_VERSION);
81
82            // ... and specify what database system we are using
83            $srv->setTargetDbms('MySQL', PMA_MYSQL_STR_VERSION);
84
85            // Log on to service
86            $srv->start();
87
88            // Do service validation
89            $str = $srv->validationString($sql);
90        }
91
92    } // end if
93
94    // Gives string back to caller
95    return $str;
96} // end of the "PMA_validateSQL()" function
97
98?>