2
/* $Id: sqlvalidator.lib.php 7465 2005-10-08 15:17:42Z nijel $ */
3
// vim: expandtab sw=4 ts=4 sts=4:
7
* SQL Validator interface for phpMyAdmin
9
* Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
10
* http://www.orbis-terrarum.net/?l=people.robbat2
12
* This function uses the Mimer SQL Validator service
13
* <http://developer.mimer.com/validator/index.htm> from phpMyAdmin
15
* Copyright for Server side validator systems:
16
* "All SQL statements are stored anonymously for statistical purposes.
17
* Mimer SQL Validator, Copyright 2002 Upright Database Technology.
18
* All rights reserved."
20
* All data is transported over HTTP-SOAP
21
* And uses the PEAR SOAP Module
23
* Install instructions for PEAR SOAP
24
* Make sure you have a really recent PHP with PEAR support
25
* run this: "pear install Mail_Mime Net_DIME SOAP"
27
* Enable the SQL Validator options in the configuration file
28
* $cfg['SQLQuery']['Validate'] = TRUE;
29
* $cfg['SQLValidator']['use'] = FALSE;
31
* Also set a username and password if you have a private one
35
// We need the PEAR libraries, so do a minimum version check first
36
// I'm not sure if PEAR was available before this point
37
// For now we actually use a configuration flag
38
if ($cfg['SQLValidator']['use'] == TRUE) {
39
require_once('./libraries/sqlvalidator.class.php');
40
} // if ($cfg['SQLValidator']['use'] == TRUE)
44
* This function utilizes the Mimer SQL Validator service
45
* to validate an SQL query
47
* <http://developer.mimer.com/validator/index.htm>
49
* @param string SQL query to validate
51
* @return string Validator result string
53
* @global array The PMA configuration array
55
function PMA_validateSQL($sql)
61
if ($cfg['SQLValidator']['use']) {
62
if (isset($GLOBALS['sqlvalidator_error'])
63
&& $GLOBALS['sqlvalidator_error']) {
64
$str = sprintf($GLOBALS['strValidatorError'], '<a href="./Documentation.html#faqsqlvalidator" target="documentation">', '</a>');
66
// create new class instance
67
$srv = new PMA_SQLValidator();
69
// Checks for username settings
70
// The class defaults to anonymous with an empty password
72
if ($cfg['SQLValidator']['username'] != '') {
73
$srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']);
76
// Identify ourselves to the server properly...
77
$srv->appendCallingProgram('phpMyAdmin', PMA_VERSION);
79
// ... and specify what database system we are using
80
$srv->setTargetDbms('MySQL', PMA_MYSQL_STR_VERSION);
85
// Do service validation
86
$str = $srv->validationString($sql);
91
// Gives string back to caller
93
} // end of the "PMA_validateSQL()" function