home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February (DVD) / PCWorld_2008-02_DVD.iso / v cisle / PHP / PHP.exe / xampp-win32-1.6.5-installer.exe / phpMyAdmin / libraries / sqlvalidator.lib.php < prev    next >
Encoding:
PHP Script  |  2007-12-20  |  2.9 KB  |  96 lines

  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']  = FALSE;
  27.  *
  28.  * Also set a username and password if you have a private one
  29.  *
  30.  * @version $Id: sqlvalidator.lib.php 10239 2007-04-01 09:51:41Z cybot_tm $
  31.  */
  32.  
  33. /**
  34.  * We need the PEAR libraries, so do a minimum version check first
  35.  * I'm not sure if PEAR was available before this point
  36.  * For now we actually use a configuration flag
  37.  */
  38. if ($cfg['SQLValidator']['use'] == TRUE)  {
  39.     require_once './libraries/sqlvalidator.class.php';
  40. } // if ($cfg['SQLValidator']['use'] == TRUE)
  41.  
  42.  
  43. /**
  44.  * This function utilizes the Mimer SQL Validator service
  45.  * to validate an SQL query
  46.  *
  47.  * <http://developer.mimer.com/validator/index.htm>
  48.  *
  49.  * @param   string   SQL query to validate
  50.  *
  51.  * @return  string   Validator result string
  52.  *
  53.  * @global  array    The PMA configuration array
  54.  */
  55. function PMA_validateSQL($sql)
  56. {
  57.     global $cfg;
  58.  
  59.     $str = '';
  60.  
  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>');
  65.         } else {
  66.             // create new class instance
  67.             $srv = new PMA_SQLValidator();
  68.  
  69.             // Checks for username settings
  70.             // The class defaults to anonymous with an empty password
  71.             // automatically
  72.             if ($cfg['SQLValidator']['username'] != '') {
  73.                 $srv->setCredentials($cfg['SQLValidator']['username'], $cfg['SQLValidator']['password']);
  74.             }
  75.  
  76.             // Identify ourselves to the server properly...
  77.             $srv->appendCallingProgram('phpMyAdmin', PMA_VERSION);
  78.  
  79.             // ... and specify what database system we are using
  80.             $srv->setTargetDbms('MySQL', PMA_MYSQL_STR_VERSION);
  81.  
  82.             // Log on to service
  83.             $srv->start();
  84.  
  85.             // Do service validation
  86.             $str = $srv->validationString($sql);
  87.         }
  88.  
  89.     } // end if
  90.  
  91.     // Gives string back to caller
  92.     return $str;
  93. } // end of the "PMA_validateSQL()" function
  94.  
  95. ?>
  96.