summaryrefslogtreecommitdiff
path: root/hugo/libraries/sqlvalidator.lib.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--hugo/libraries/sqlvalidator.lib.php106
1 files changed, 106 insertions, 0 deletions
diff --git a/hugo/libraries/sqlvalidator.lib.php b/hugo/libraries/sqlvalidator.lib.php
new file mode 100644
index 0000000..de55e9a
--- /dev/null
+++ b/hugo/libraries/sqlvalidator.lib.php
@@ -0,0 +1,106 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * SQL Validator interface for phpMyAdmin
+ *
+ * Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
+ * http://www.orbis-terrarum.net/?l=people.robbat2
+ *
+ * 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
+ *
+ * Install instructions for PEAR SOAP
+ * Make sure you have a really recent PHP with PEAR support
+ * run this: "pear install Mail_Mime Net_DIME SOAP"
+ *
+ * Enable the SQL Validator options in the configuration file
+ * $cfg['SQLQuery']['Validate'] = true;
+ * $cfg['SQLValidator']['use'] = true;
+ *
+ * Also set a username and password if you have a private one
+ *
+ * @package PhpMyAdmin
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * We need the PEAR libraries, so do a minimum version check first
+ * I'm not sure if PEAR was available before this point
+ * For now we actually use a configuration flag
+ */
+if ($cfg['SQLValidator']['use'] == true) {
+ include_once './libraries/sqlvalidator.class.php';
+} // if ($cfg['SQLValidator']['use'] == true)
+
+
+/**
+ * This function utilizes the Mimer SQL Validator service
+ * to validate an SQL query
+ *
+ * <http://developer.mimer.com/validator/index.htm>
+ *
+ * @param string $sql SQL query to validate
+ *
+ * @return string Validator result string
+ *
+ * @global array The PMA configuration array
+ */
+function PMA_validateSQL($sql)
+{
+ global $cfg;
+
+ $str = '';
+
+ if ($cfg['SQLValidator']['use']) {
+ if (isset($GLOBALS['sqlvalidator_error'])
+ && $GLOBALS['sqlvalidator_error']
+ ) {
+ $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="' . PMA_Util::getDocuLink('faq', 'faqsqlvalidator') . '" target="documentation">',
+ '</a>'
+ );
+ } else {
+ // create new class instance
+ $srv = new PMA_SQLValidator();
+
+ // Checks 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);
+ }
+
+ } // end if
+
+ // Gives string back to caller
+ return $str;
+} // end of the "PMA_validateSQL()" function
+
+?>