* libraries/sqlvalidator.php3, libraries/sqlvalidator.class.php3:
- Function documentation and cleanup
This commit is contained in:
@@ -31,6 +31,8 @@ $Source$
|
||||
* sql.php3, libraries/common.lib.php3:
|
||||
- Improved logic of edit, show_as_php, explain and validator
|
||||
in the SQL query box
|
||||
* libraries/sqlvalidator.php3, libraries/sqlvalidator.class.php3:
|
||||
- Function documentation and cleanup
|
||||
|
||||
2002-08-02 Robin Johnson <robbat2@users.sourceforge.net>
|
||||
* libraries/defines*:
|
||||
|
@@ -16,14 +16,17 @@
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @author Robin Johnson <robbat2@orbis-terrarum.net>
|
||||
* @version $Revision$
|
||||
* @author Robin Johnson <robbat2@users.sourceforge.net>
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
if (!defined('PMA_SQL_VALIDATOR_CLASS_INCLUDED')) {
|
||||
define('PMA_SQL_VALIDATOR_CLASS_INCLUDED', 1);
|
||||
|
||||
include("SOAP/Client.php");
|
||||
@include("SOAP/Client.php");
|
||||
if(!class_exists('SOAP_Client') {
|
||||
$GLOBALS['sqlvalidator_error'] = TRUE;
|
||||
} else {
|
||||
|
||||
// Ok, so we have SOAP Support, so let's use it!
|
||||
|
||||
@@ -52,6 +55,7 @@ if (!defined('PMA_SQL_VALIDATOR_CLASS_INCLUDED')) {
|
||||
$this->url = "http://sqlvalidator.mimer.com/v1/services";
|
||||
$this->serviceName = 'SQL99Validator';
|
||||
$this->wsdl = '?wsdl';
|
||||
|
||||
$this->outputType = 'html';
|
||||
|
||||
$this->username = 'anonymous';
|
||||
@@ -119,6 +123,11 @@ if (!defined('PMA_SQL_VALIDATOR_CLASS_INCLUDED')) {
|
||||
{
|
||||
$this->interactive = $interactive;
|
||||
}
|
||||
|
||||
function setOutputType($outputtype)
|
||||
{
|
||||
$this->OutputType = $outputtype;
|
||||
}
|
||||
|
||||
function start()
|
||||
{
|
||||
@@ -145,28 +154,69 @@ if (!defined('PMA_SQL_VALIDATOR_CLASS_INCLUDED')) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call to determine just if a query is valid or not.
|
||||
*
|
||||
* @param string SQL statement to validate
|
||||
*
|
||||
* @return string Validator string from Mimer
|
||||
*
|
||||
* @see _validate
|
||||
*/
|
||||
function isValid($sql)
|
||||
{
|
||||
$res = $this->_validate($sql);
|
||||
return $res->standard;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call for complete validator response
|
||||
*
|
||||
* @param string SQL statement to validate
|
||||
*
|
||||
* @return string Validator string from Mimer
|
||||
*
|
||||
* @see _validate
|
||||
*/
|
||||
function ValidationString($sql)
|
||||
{
|
||||
$res = $this->_validate($sql);
|
||||
return $res->data;
|
||||
}
|
||||
|
||||
/* Private functions beyond here
|
||||
*
|
||||
*/
|
||||
/** Private functions beyond here
|
||||
* You don't need to mess with these
|
||||
*/
|
||||
|
||||
/**
|
||||
* Service opening
|
||||
*
|
||||
* @param string URL of Mimer SQL Validator WSDL file
|
||||
*
|
||||
* @return object Object to use
|
||||
*/
|
||||
function _openService($url)
|
||||
{
|
||||
$obj = new SOAP_Client($url,TRUE);
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Service initializer to connect to server
|
||||
*
|
||||
* @param object Service object
|
||||
* @param string Username
|
||||
* @param string Password
|
||||
* @param string Name of calling program
|
||||
* @param string Version of calling program
|
||||
* @param string Target DBMS
|
||||
* @param string Version of target DBMS
|
||||
* @param string Connection Technology
|
||||
* @param string version of Connection Technology
|
||||
* @param number boolean of 1/0 to specify if we are an interactive system
|
||||
*
|
||||
* @return object stdClass return object with data
|
||||
*/
|
||||
function _openSession($obj, $username, $password, $callingProgram, $callingProgramVersion, $targetDbms, $targetDbmsVersion, $connectionTechnology, $connectionTechnologyVersion, $interactive)
|
||||
{
|
||||
|
||||
@@ -176,17 +226,28 @@ if (!defined('PMA_SQL_VALIDATOR_CLASS_INCLUDED')) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Standard calling method
|
||||
*
|
||||
* @param sql SQL statement to validate
|
||||
* @return Raw string from Mimer
|
||||
*/
|
||||
* Validator sytem call
|
||||
*
|
||||
* @param object Service object
|
||||
* @param object Session object
|
||||
* @param string SQL Query to validate
|
||||
* @param string Data return type
|
||||
*
|
||||
* @return object stClass return with data
|
||||
*/
|
||||
function _validateSQL($obj,$session,$sql,$method)
|
||||
{
|
||||
$res = $obj->validateSQL($session->sessionId, $session->sessionKey, $sql, $this->outputType);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validator sytem call
|
||||
*
|
||||
* @param string SQL Query to validate
|
||||
*
|
||||
* @return object stClass return with data
|
||||
*/
|
||||
function _validate($sql)
|
||||
{
|
||||
$ret = $this->_validateSQL($this->serviceLink, $this->sessionData, $sql, $this->outputType);
|
||||
|
@@ -9,6 +9,11 @@
|
||||
* This function uses the Mimer SQL Validator service
|
||||
* <http://developer.mimer.com/validator/index.htm> from phpMyAdmin
|
||||
*
|
||||
* Copyright for Server side validator systems:
|
||||
* "All SQL statements are stored anonymously for statistical purposes.
|
||||
* Mimer SQL Validator, Copyright 2002 Upright Database Technology.
|
||||
* All rights reserved."
|
||||
*
|
||||
* All data is transported over HTTP-SOAP
|
||||
* And uses the PEAR SOAP Module
|
||||
*
|
||||
@@ -31,29 +36,66 @@ if (!defined('PMA_SQL_VALIDATOR_INCLUDED')) {
|
||||
// For now we actually use a configuration flag
|
||||
if ($cfg['SQLValidator']['use'] == TRUE) {
|
||||
include_once('sqlvalidator.class.php3');
|
||||
} // if ($cfg['SQLValidator']['use'] == TRUE)
|
||||
|
||||
function validateSQL($sql)
|
||||
{
|
||||
global $cfg;
|
||||
/**
|
||||
* This function utilizes the Mimer SQL Validator service
|
||||
* to validate an SQL query
|
||||
*
|
||||
* <http://developer.mimer.com/validator/index.htm>
|
||||
*
|
||||
* @param string SQL query to validate
|
||||
*
|
||||
* @return string Validator result string
|
||||
*/
|
||||
function validateSQL($sql)
|
||||
{
|
||||
global $cfg;
|
||||
$str = '';
|
||||
if ($cfg['SQLValidator']['use'] == TRUE) {
|
||||
// create new class instance
|
||||
$srv = new SQLValidator();
|
||||
|
||||
// check for username settings
|
||||
// The class defaults to anonymous with an empty password
|
||||
// automatically
|
||||
if($cfg['SQLValidator']['username'] != '') {
|
||||
$srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']);
|
||||
}
|
||||
|
||||
// Identify ourselves to the server properly
|
||||
$srv->appendCallingProgram('phpMyAdmin',PMA_VERSION);
|
||||
|
||||
// And specify what database system we are using
|
||||
$srv->setTargetDbms('MySQL',PMA_MYSQL_STR_VERSION);
|
||||
|
||||
// Log on to service
|
||||
$srv->start();
|
||||
|
||||
// Do service validation
|
||||
$str = $srv->ValidationString($sql);
|
||||
|
||||
// Strip out the copyright if requested
|
||||
if($cfg['SQLValidator']['DisplayCopyright'] != TRUE) {
|
||||
$match = "reserved.<br/>\n<br/>";
|
||||
$pos = strpos($str,$match);
|
||||
$pos += strlen($match);
|
||||
$str = substr($str,$pos);
|
||||
}
|
||||
return $str;
|
||||
|
||||
} else {
|
||||
|
||||
// The service is not available
|
||||
// So note that properly
|
||||
$str = $GLOBALS['strValidatorDisabled'];
|
||||
|
||||
} // function validateSQL($sql)
|
||||
}
|
||||
|
||||
// Give string back to caller
|
||||
return $str;
|
||||
|
||||
} // function validateSQL($sql)
|
||||
|
||||
} // if ($cfg['SQLValidator']['use'] == TRUE)
|
||||
|
||||
} //$__PMA_SQL_VALIDATOR__
|
||||
|
||||
|
Reference in New Issue
Block a user