00001 <?php
00002
00003
00004
00020
00021 if (!defined('PMA_VERSION')) {
00022 define('PMA_VERSION', '2.5.6-rc1');
00023 }
00024
00025
00026 if (!defined('PMA_PHP_INT_VERSION')) {
00027 if (!preg_match('@([0-9]{1,2}).([0-9]{1,2}).([0-9]{1,2})@', phpversion(), $match)) {
00028 $result = preg_match('@([0-9]{1,2}).([0-9]{1,2})@', phpversion(), $match);
00029 }
00030 if (isset($match) && !empty($match[1])) {
00031 if (!isset($match[2])) {
00032 $match[2] = 0;
00033 }
00034 if (!isset($match[3])) {
00035 $match[3] = 0;
00036 }
00037 define('PMA_PHP_INT_VERSION', (int)sprintf('%d%02d%02d', $match[1], $match[2], $match[3]));
00038 unset($match);
00039 } else {
00040 define('PMA_PHP_INT_VERSION', 0);
00041 }
00042 define('PMA_PHP_STR_VERSION', phpversion());
00043 }
00044
00045
00046 if (!defined('PMA_MYSQL_CLIENT_API')) {
00047 $client_api = explode('.', mysql_get_client_info());
00048 define('PMA_MYSQL_CLIENT_API', (int)sprintf('%d%02d%02d', $client_api[0], $client_api[1], intval($client_api[2])));
00049 unset($client_api);
00050 }
00051
00052
00053 if (!defined('PMA_IS_WINDOWS')) {
00054 if (defined('PHP_OS') && stristr(PHP_OS, 'win')) {
00055 define('PMA_IS_WINDOWS', 1);
00056 } else {
00057 define('PMA_IS_WINDOWS', 0);
00058 }
00059 }
00060
00061 function PMA_dl($module) {
00062 if (!isset($GLOBALS['PMA_dl_allowed'])) {
00063 if (!@ini_get('safe_mode') && @ini_get('enable_dl') && @function_exists('dl')) {
00064 ob_start();
00065 phpinfo(INFO_GENERAL);
00066 $a = strip_tags(ob_get_contents());
00067 ob_end_clean();
00068
00069 if (preg_match('@Thread Safety[[:space:]]*enabled@', $a)) {
00070 if (preg_match('@Server API[[:space:]]*\(CGI\|CLI\)@', $a)) {
00071 $GLOBALS['PMA_dl_allowed'] = TRUE;
00072 } else {
00073 $GLOBALS['PMA_dl_allowed'] = FALSE;
00074 }
00075 } else {
00076 $GLOBALS['PMA_dl_allowed'] = TRUE;
00077 }
00078 } else {
00079 $GLOBALS['PMA_dl_allowed'] = FALSE;
00080 }
00081 }
00082 if (PMA_IS_WINDOWS) {
00083 $suffix = '.dll';
00084 } else {
00085 $suffix = '.so';
00086 }
00087 if ($GLOBALS['PMA_dl_allowed']) {
00088 return @dl($module . $suffix);
00089 } else {
00090 return FALSE;
00091 }
00092 }
00093
00094
00095 if (!defined('PMA_IS_GD2')) {
00096 if ($cfg['GD2Available'] == 'yes') {
00097 define('PMA_IS_GD2', 1);
00098 } elseif ($cfg['GD2Available'] == 'no') {
00099 define('PMA_IS_GD2', 0);
00100 } else {
00101 if (!@extension_loaded('gd')) {
00102 PMA_dl('gd');
00103 }
00104 if (!@function_exists('imagecreatetruecolor')) {
00105 define('PMA_IS_GD2', 0);
00106 } else {
00107 if (@function_exists('gd_info')) {
00108 $gd_nfo = gd_info();
00109 if (strstr($gd_nfo["GD Version"], '2.')) {
00110 define('PMA_IS_GD2', 1);
00111 } else {
00112 define('PMA_IS_GD2', 0);
00113 }
00114 } else {
00115
00116 ob_start();
00117 phpinfo(INFO_MODULES);
00118 $a = strip_tags(ob_get_contents());
00119 ob_end_clean();
00120
00121 if (preg_match('@GD Version[[:space:]]*\(.*\)@', $a, $v)) {
00122 if (strstr($v, '2.')) {
00123 define('PMA_IS_GD2', 1);
00124 } else {
00125 define('PMA_IS_GD2', 0);
00126 }
00127 } else {
00128 define('PMA_IS_GD2', 0);
00129 }
00130 }
00131 }
00132 }
00133 }
00134
00135
00136
00137
00138 if (!defined('PMA_USR_OS')) {
00139 if (!empty($_SERVER['HTTP_USER_AGENT'])) {
00140 $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
00141 } else if (!isset($HTTP_USER_AGENT)) {
00142 $HTTP_USER_AGENT = '';
00143 }
00144
00145
00146 if (strstr($HTTP_USER_AGENT, 'Win')) {
00147 define('PMA_USR_OS', 'Win');
00148 } else if (strstr($HTTP_USER_AGENT, 'Mac')) {
00149 define('PMA_USR_OS', 'Mac');
00150 } else if (strstr($HTTP_USER_AGENT, 'Linux')) {
00151 define('PMA_USR_OS', 'Linux');
00152 } else if (strstr($HTTP_USER_AGENT, 'Unix')) {
00153 define('PMA_USR_OS', 'Unix');
00154 } else if (strstr($HTTP_USER_AGENT, 'OS/2')) {
00155 define('PMA_USR_OS', 'OS/2');
00156 } else {
00157 define('PMA_USR_OS', 'Other');
00158 }
00159
00160
00161
00162
00163 if (preg_match('@Opera(/| )([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
00164 define('PMA_USR_BROWSER_VER', $log_version[2]);
00165 define('PMA_USR_BROWSER_AGENT', 'OPERA');
00166 } else if (preg_match('@MSIE ([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
00167 define('PMA_USR_BROWSER_VER', $log_version[1]);
00168 define('PMA_USR_BROWSER_AGENT', 'IE');
00169 } else if (preg_match('@OmniWeb/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
00170 define('PMA_USR_BROWSER_VER', $log_version[1]);
00171 define('PMA_USR_BROWSER_AGENT', 'OMNIWEB');
00172
00173
00174
00175 } else if (preg_match('@(Konqueror/)(.*)(;)@', $HTTP_USER_AGENT, $log_version)) {
00176 define('PMA_USR_BROWSER_VER', $log_version[2]);
00177 define('PMA_USR_BROWSER_AGENT', 'KONQUEROR');
00178 } else if (preg_match('@Mozilla/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)
00179 && preg_match('@Safari/([0-9]*)@', $HTTP_USER_AGENT, $log_version2)) {
00180 define('PMA_USR_BROWSER_VER', $log_version[1] . '.' . $log_version2[1]);
00181 define('PMA_USR_BROWSER_AGENT', 'SAFARI');
00182 } else if (preg_match('@Mozilla/([0-9].[0-9]{1,2})@', $HTTP_USER_AGENT, $log_version)) {
00183 define('PMA_USR_BROWSER_VER', $log_version[1]);
00184 define('PMA_USR_BROWSER_AGENT', 'MOZILLA');
00185 } else {
00186 define('PMA_USR_BROWSER_VER', 0);
00187 define('PMA_USR_BROWSER_AGENT', 'OTHER');
00188 }
00189 }
00190
00191 ?>