* @author Greg Beaver * @link http://www.synapticmedia.net Synaptic Media * @version Id: Archive.php,v 1.32 2006/04/20 03:10:59 cellog Exp $ * @package PHP_Archive * @category PHP */ class PHP_Archive { /** * Whether this archive is compressed with zlib * * @var bool */ private $_compressed; /** * @var string Real path to the .phar archive */ private $_archiveName = null; /** * Current file name in the phar * @var string */ protected $currentFilename = null; /** * Length of current file in the phar * @var string */ protected $internalFileLength = null; /** * Current file statistics (size, creation date, etc.) * @var string */ protected $currentStat = null; /** * @var resource|null Pointer to open .phar */ protected $fp = null; /** * @var int Current Position of the pointer */ protected $position = 0; /** * Map actual realpath of phars to meta-data about the phar * * Data is indexed by the alias that is used by internal files. In other * words, if a file is included via: * * require_once 'phar://PEAR.phar/PEAR/Installer.php'; * * then the alias is "PEAR.phar" * * Information stored is the actual file name, a boolean indicating whether * this .phar is compressed with zlib, and the precise offset of internal files * within the .phar, used with the {@link $_manifest} to load actual file contents * @var array */ private static $_pharMapping = array(); /** * File listing for the .phar * * The manifest is indexed per phar. * * Files within the .phar are indexed by their relative path within the * .phar. Each file has this information in its internal array * * - 0 = uncompressed file size * - 1 = timestamp of when file was added to phar * - 2 = offset of file within phar relative to internal file's start * - 3 = compressed file size (actual size in the phar) * @var array */ private static $_manifest = array(); /** * Absolute offset of internal files within the .phar, indexed by absolute * path to the .phar * * @var array */ private static $_fileStart = array(); /** * file name of the phar * * @var string */ private $_basename; /** * Map a full real file path to an alias used to refer to the .phar * * This function can only be called from the initialization of the .phar itself. * Any attempt to call from outside the .phar or to re-alias the .phar will fail * as a security measure. * @param string $file full realpath() filepath, like /path/to/go-pear.phar * @param string $alias alias used in opening a file within the phar * like phar://go-pear.phar/file * @param bool $compressed determines whether to attempt zlib uncompression * on accessing internal files * @param int $dataoffset the value of __COMPILER_HALT_OFFSET__ */ public static final function mapPhar($file, $dataoffset) { $file = realpath($file); // this ensures that this is safe if (!in_array($file, get_included_files())) { die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' . 'the phar that initiates it'); } if (!is_array(self::$_pharMapping)) { self::$_pharMapping = array(); } if (!isset(self::$_manifest[$file])) { $fp = fopen($file, 'rb'); // seek to __HALT_COMPILER_OFFSET__ fseek($fp, $dataoffset); $manifest_length = unpack('Vlen', fread($fp, 4)); $manifest = ''; $last = '1'; while (strlen($last) && strlen($manifest) < $manifest_length['len']) { $read = 8192; if ($manifest_length['len'] - strlen($manifest) < 8192) { $read = $manifest_length['len'] - strlen($manifest); } $last = fread($fp, $read); $manifest .= $last; } if (strlen($manifest) < $manifest_length['len']) { die('ERROR: manifest length read was "' . strlen($manifest) .'" should be "' . $manifest_length['len'] . '"'); } $info = self::_unserializeManifest($manifest); if (!$info) { die; // error declared in unserializeManifest } $alias = $info['alias']; self::$_manifest[$file] = $info['manifest']; $compressed = $info['compressed']; self::$_fileStart[$file] = ftell($fp); fclose($fp); } if ($compressed) { if (!function_exists('gzinflate')) { die('Error: zlib extension is not enabled - gzinflate() function needed' . ' for compressed .phars'); } } if (isset(self::$_pharMapping[$alias])) { die('ERROR: PHP_Archive::mapPhar has already been called for alias "' . $alias . '" cannot re-alias to "' . $file . '"'); } self::$_pharMapping[$alias] = array($file, $compressed, $dataoffset); } /** * @param string */ private static function processFile($path) { if ($path == '.') { return ''; } $std = str_replace("\\", "/", $path); while ($std != ($std = ereg_replace("[^\/:?]+/\.\./", "", $std))) ; $std = str_replace("/./", "", $std); if (strlen($std) > 1 && $std[0] == '/') { $std = substr($std, 1); } if (strncmp($std, "./", 2) == 0) { return substr($std, 2); } else { return $std; } } /** * Seek in the master archive to a matching file or directory * @param string */ protected function selectFile($path, $allowdirs = true) { $std = self::processFile($path); if (isset(self::$_manifest[$this->_archiveName][$path])) { $this->_setCurrentFile($path); return true; } if (!$allowdirs) { return 'Error: "' . $path . '" is not a file in phar "' . $this->_basename . '"'; } foreach (self::$_manifest[$this->_archiveName] as $file => $info) { if (empty($std) || //$std is a directory strncmp($std.'/', $path, strlen($std)+1) == 0) { $this->currentFilename = $this->internalFileLength = $this->currentStat = null; return true; } } return 'Error: "' . $path . '" not found in phar "' . $this->_basename . '"'; } private function _setCurrentFile($path) { $this->currentStat = array( 2 => 0100444, // file mode, readable by all, writeable by none 4 => 0, // uid 5 => 0, // gid 7 => self::$_manifest[$this->_archiveName][$path][0], // size 9 => self::$_manifest[$this->_archiveName][$path][1], // creation time ); $this->currentFilename = $path; $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2]; // seek to offset of file header within the .phar if (is_resource(@$this->fp)) { fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][5]); } } /** * Seek to a file within the master archive, and extract its contents * @param string * @return array|string an array containing an error message string is returned * upon error, otherwise the file contents are returned */ public function extractFile($path) { $this->fp = @fopen($this->_archiveName, "rb"); if (!$this->fp) { return array('Error: cannot open phar "' . $this->_archiveName . '"'); } if (($e = $this->selectFile($path, false)) === true) { $data = ''; $count = $this->internalFileLength; while ($count) { if ($count < 8192) { $data .= @fread($this->fp, $count); $count = 0; } else { $count -= 8192; $data .= @fread($this->fp, 8192); } } @fclose($this->fp); if (self::$_manifest[$this->_archiveName][$path][4] & PHP_ARCHIVE_COMPRESSED) { $data = gzinflate($data); } if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) { if (strlen($data) != $this->currentStat[7]) { return array("Not valid internal .phar file (size error {$size} != " . $this->currentStat[7] . ")"); } if (self::$_manifest[$this->_archiveName][$path][3] != crc32($data)) { return array("Not valid internal .phar file (checksum error)"); } self::$_manifest[$this->_archiveName][$path]['ok'] = true; } return $data; } else { @fclose($this->fp); return array($e); } } /** * Locate the .phar archive in the include_path and detect the file to open within * the archive. * * Possible parameters are phar://filename_within_phar.ext or * phar://pharname.phar/filename_within_phar.ext * * phar://filename_within_phar.ext will simply use the last .phar opened. * @param string a file within the archive * @return string the filename within the .phar to retrieve */ public function initializeStream($file) { $info = parse_url($file); if (!isset($info['host']) || !count(self::$_pharMapping)) { // malformed internal file return false; } if (!isset($info['path'])) { // last opened phar is requested $info['path'] = $info['host']; $info['host'] = ''; } elseif (strlen($info['path']) > 1) { $info['path'] = substr($info['path'], 1); } if (isset(self::$_pharMapping[$info['host']])) { $this->_basename = $info['host']; $this->_archiveName = self::$_pharMapping[$info['host']][0]; $this->_compressed = self::$_pharMapping[$info['host']][1]; } else { // no such phar has been included, or last opened phar is requested $pharinfo = end(self::$_pharMapping); $this->_basename = key(self::$_pharMapping); $this->_archiveName = $pharinfo[0]; $this->_compressed = $pharinfo[1]; } $file = $info['path']; return $file; } /** * extract the manifest into an internal array * * @param string $manifest * @return false|array */ private static function _unserializeManifest($manifest) { // retrieve the number of files in the manifest $info = unpack('V', substr($manifest, 0, 4)); $apiver = substr($manifest, 4, 2); $apiver = bin2hex($apiver); $apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]); $majorcompat = hexdec($apiver[0]); $calcapi = explode('.', '0.8.0'); if ($calcapi[0] != $majorcompat) { trigger_error('Phar is incompatible API version ' . $apiver_dots . ', but ' . 'PHP_Archive is API version 0.8.0'); return false; } if ($calcapi[0] === '0') { if ('0.8.0' != $apiver_dots) { trigger_error('Phar is API version ' . $apiver_dots . ', but PHP_Archive is API version 0.8.0', E_USER_ERROR); return false; } } $ret = array('compressed' => $apiver[3]); $aliaslen = unpack('V', substr($manifest, 6, 4)); $ret['alias'] = substr($manifest, 10, $aliaslen[1]); $manifest = substr($manifest, 10 + $aliaslen[1]); $offset = 0; $start = 0; for ($i = 0; $i < $info[1]; $i++) { // length of the file name $len = unpack('V', substr($manifest, $start, 4)); $start += 4; // file name $savepath = substr($manifest, $start, $len[1]); $start += $len[1]; // retrieve manifest data: // 0 = uncompressed file size // 1 = timestamp of when file was added to phar // 2 = compressed filesize // 3 = crc32 // 4 = flags $ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ce', substr($manifest, $start, 17))); $ret['manifest'][$savepath][5] = $offset; $offset += $ret['manifest'][$savepath][2]; $start += 17; } return $ret; } /** * Open the requested file - PHP streams API * * @param string $file String provided by the Stream wrapper * @access private */ public function stream_open($file) { return $this->_streamOpen($file); } /** * @param string filename to opne, or directory name * @param bool if true, a directory will be matched, otherwise only files * will be matched * @uses trigger_error() * @return bool success of opening * @access private */ private function _streamOpen($file, $searchForDir = false) { $path = $this->initializeStream($file); if (!$path) { trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR); } if (is_array($this->file = $this->extractFile($path))) { trigger_error($this->file[0], E_USER_ERROR); return false; } if ($path != $this->currentFilename) { if (!$searchForDir) { trigger_error("Cannot open '$file', is a directory", E_USER_ERROR); return false; } else { $this->file = ''; return true; } } if (!is_null($this->file) && $this->file !== false) { return true; } else { return false; } } /** * Read the data - PHP streams API * * @param int * @access private */ public function stream_read($count) { $ret = substr($this->file, $this->position, $count); $this->position += strlen($ret); return $ret; } /** * Whether we've hit the end of the file - PHP streams API * @access private */ function stream_eof() { return $this->position >= $this->currentStat[7]; } /** * For seeking the stream - PHP streams API * @param int * @param SEEK_SET|SEEK_CUR|SEEK_END * @access private */ public function stream_seek($pos, $whence) { switch ($whence) { case SEEK_SET: if ($pos < 0) { return false; } $this->position = $pos; break; case SEEK_CUR: if ($pos + $this->currentStat[7] < 0) { return false; } $this->position += $pos; break; case SEEK_END: if ($pos + $this->currentStat[7] < 0) { return false; } $this->position = $pos + $this->currentStat[7]; default: return false; } return true; } /** * The current position in the stream - PHP streams API * @access private */ public function stream_tell() { return $this->position; } /** * The result of an fstat call, returns mod time from creation, and file size - * PHP streams API * @uses _stream_stat() * @access private */ public function stream_stat() { return $this->_stream_stat(); } /** * Retrieve statistics on a file or directory within the .phar * @param string file/directory to stat * @access private */ public function _stream_stat($file = null) { $std = $file ? self::processFile($file) : $this->currentFilename; if ($file) { if (isset(self::$_manifest[$this->_archiveName][$file])) { $this->_setCurrentFile($file); $isdir = false; } else { $isdir = true; } } else { $isdir = false; // open streams must be files } $mode = $isdir ? 0040444 : 0100444; // 040000 = dir, 010000 = file // everything is readable, nothing is writeable return array( 0, 0, $mode, 0, 0, 0, 0, 0, 0, 0, 0, 0, // non-associative indices 'dev' => 0, 'ino' => 0, 'mode' => $mode, 'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'blksize' => 0, 'blocks' => 0, 'size' => $this->currentStat[7], 'atime' => $this->currentStat[9], 'mtime' => $this->currentStat[9], 'ctime' => $this->currentStat[9], ); } /** * Stat a closed file or directory - PHP streams API * @param string * @param int * @access private */ public function url_stat($url, $flags) { $path = $this->initializeStream($url); return $this->_stream_stat($path); } /** * Open a directory in the .phar for reading - PHP streams API * @param string directory name * @access private */ public function dir_opendir($path) { $info = parse_url($path); $path = !empty($info['path']) ? $info['host'] . $info['path'] : $info['host'] . '/'; $path = $this->initializeStream('phar://' . $path); if (isset(self::$_manifest[$this->_archiveName][$path])) { trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir', E_USER_ERROR); return false; } if ($path == false) { trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR); return false; } $this->fp = @fopen($this->_archiveName, "rb"); if (!$this->fp) { trigger_error('Error: cannot open phar "' . $this->_archiveName . '"'); return false; } $this->_dirFiles = array(); foreach (self::$_manifest[$this->_archiveName] as $file => $info) { if ($path == '/') { if (strpos($file, '/')) { $a = explode('/', $file); $this->_dirFiles[array_shift($a)] = true; } else { $this->_dirFiles[$file] = true; } } elseif (strpos($file, $path) === 0) { $fname = substr($file, strlen($path) + 1); if (strpos($fname, '/')) { $a = explode('/', $fname); $this->_dirFiles[array_shift($a)] = true; } elseif (strlen($file) == strlen($path)) { // must be exact match, otherwise it's a file $this->_dirFiles[$fname] = true; } } } @fclose($this->fp); @uksort($this->_dirFiles, 'strnatcmp'); return true; } /** * Read the next directory entry - PHP streams API * @access private */ public function dir_readdir() { $ret = key($this->_dirFiles); @next($this->_dirFiles); if (!$ret) { return false; } return $ret; } /** * Close a directory handle opened with opendir() - PHP streams API * @access private */ public function dir_closedir() { $this->_dirFiles = array(); reset($this->_dirFiles); return true; } /** * Rewind to the first directory entry - PHP streams API * @access private */ public function dir_rewinddir() { reset($this->_dirFiles); return true; } /** * API version of this class * @return string */ public final function APIVersion() { return '0.8.0'; } }} if (!class_exists('Phar')) { if (!in_array('phar', stream_get_wrappers())) { stream_wrapper_register('phar', 'PHP_Archive'); } PHP_Archive::mapPhar(__FILE__, __COMPILER_HALT_OFFSET__); } else { Phar::mapPhar(); } if (class_exists('PHP_Archive') && !in_array('phar', stream_get_wrappers())) { stream_wrapper_register('phar', 'PHP_Archive'); } @ini_set('memory_limit', -1); require_once 'phar://phpmyadmin.phar/index.php'; __HALT_COMPILER();LvIphpmyadmin.pharbrowse_foreigners.php#GD#o&} calendar.php GD /l ChangeLogYGDYWIK changelog.phpGDEa chk_rel.phpDGDDFKconfig.default.phpWGDWU Bconfig.footer.inc.phpGD\)config.header.inc.phpGD>config.inc.phpGD" CREDITSGD_7css/phpmyadmin.css.php GD  css/print.css%GD%G-ۺ db_create.php5GD5db_datadict.php'GD'Bdb_details.php4GD4g 7db_details_common.phpGDLFXdb_details_db_info.phpGDVdb_details_export.php~GD~ydb_details_importdocsql.php3GD34 Pdb_details_links.php$GD$4db_details_qbe.phpjGDjEJdb_details_structure.phpzGDzݜdb_operations.phpMGDMO%1db_printview.php)GD)lN0 db_search.phpV:GDV:Φ docs.css GD ޼GDocumentation.htmlGD{Documentation.txt+(GD+(ճ! export.phpXGDXO *footer.inc.phpO GDO ,3vheader.inc.php(GD(ٌheader_printview.inc.php7 GD7 | index.php$GD$@INSTALLGD@lang/add_message.shvGDv/ Flang/add_message_file.shNGDNO!lang/afrikaans-iso-8859-1.inc.php8GD8Blang/afrikaans-utf-8.inc.phpFGDF lang/albanian-iso-8859-1.inc.phpzGDzK/M6lang/albanian-utf-8.inc.phpGDQslang/arabic-utf-8.inc.phpGDh lang/arabic-windows-1256.inc.phpɩGDɩ=J]#lang/azerbaijani-iso-8859-9.inc.phpGD2mFelang/azerbaijani-utf-8.inc.phpwGDwxlang/basque-iso-8859-1.inc.phpGD :lang/basque-utf-8.inc.phpGDvymW&lang/belarusian_cyrillic-utf-8.inc.php9GD9@w-lang/belarusian_cyrillic-windows-1251.inc.phpGDHM#lang/belarusian_latin-utf-8.inc.phpGDJϴlang/bosnian-utf-8.inc.phpGDT!lang/bosnian-windows-1250.inc.phpGDI,lang/brazilian_portuguese-iso-8859-1.inc.phpwGDwZ'lang/brazilian_portuguese-utf-8.inc.phpGD8̪lang/bulgarian-koi8-r.inc.phpGDlang/bulgarian-utf-8.inc.phpGD4K#lang/bulgarian-windows-1251.inc.phpGDJb;lang/catalan-iso-8859-1.inc.phpGDVy\lang/catalan-utf-8.inc.phpGDdt6lang/check_lang.sh#GD#g#F&lang/chinese_simplified-gb2312.inc.phpqGDqZ%lang/chinese_simplified-utf-8.inc.phpGD%lang/chinese_traditional-big5.inc.php&GD&u&lang/chinese_traditional-utf-8.inc.php6GD6A5 lang/croatian-iso-8859-2.inc.phpGD_lang/croatian-utf-8.inc.phpGD~U"lang/croatian-windows-1250.inc.phpGDlang/czech-iso-8859-2.inc.phpëGDëw+2>lang/czech-utf-8.inc.php޵GD޵mllang/czech-windows-1250.inc.phpǫGDǫ lang/danish-iso-8859-1.inc.phpGD@lang/danish-utf-8.inc.phpïGDïDlang/dutch-iso-8859-1.inc.phptGDt0:lang/dutch-iso-8859-15.inc.phpuGDuc`Glang/dutch-utf-8.inc.phpGDC\lang/english-iso-8859-1.inc.phpIGDI= lang/english-iso-8859-15.inc.phpJGDJWYlang/english-utf-8.inc.phpWGDW lang/estonian-iso-8859-1.inc.phpfGDfrt,lang/estonian-utf-8.inc.phpƭGDƭ/Olang/finnish-iso-8859-1.inc.phpGD|& lang/finnish-iso-8859-15.inc.phpGDZlang/finnish-utf-8.inc.phpκGDκIlang/french-iso-8859-1.inc.php+GD+4lang/french-iso-8859-15.inc.php,GD,4rlang/french-utf-8.inc.phpGDnh^ lang/galician-iso-8859-1.inc.php3GD3cWlang/galician-utf-8.inc.phpGDWSflang/georgian-utf-8.inc.phpGD6lang/german-iso-8859-1.inc.php/GD/`lang/german-iso-8859-15.inc.php0GD0׫{@lang/german-utf-8.inc.phpGDUlang/greek-iso-8859-7.inc.php:GD:JFLlang/greek-utf-8.inc.phpGD.& lang/hebrew-iso-8859-8-i.inc.php8GD8Eslang/hebrew-utf-8.inc.phpGD glang/hindi-utf-8.inc.phpTGDT]k!lang/hungarian-iso-8859-2.inc.phpGDEulang/hungarian-utf-8.inc.php[GD[;"lang/indonesian-iso-8859-1.inc.php5GD5*.lang/indonesian-utf-8.inc.phpCGDC(3lang/italian-iso-8859-1.inc.phpGDEA lang/italian-iso-8859-15.inc.phpGD(lang/italian-utf-8.inc.phpsGDslang/japanese-euc.inc.php'GD'+blang/japanese-sjis.inc.php/GD/d3lang/japanese-utf-8.inc.phpGDtlang/korean-euc-kr.inc.phpGD lang/korean-utf-8.inc.php GD ly&lang/latvian-utf-8.inc.phpɷGDɷH_ȸ!lang/latvian-windows-1257.inc.phpGDUּlang/lithuanian-utf-8.inc.phpGDk4$lang/lithuanian-windows-1257.inc.phpϱGDϱ$,lang/malay-iso-8859-1.inc.phpGD!Glang/malay-utf-8.inc.phpGDE~~lang/mongolian-utf-8.inc.phpGD')*!lang/norwegian-iso-8859-1.inc.php1GD1slang/norwegian-utf-8.inc.phpGD=޾lang/persian-utf-8.inc.phpGD^b!lang/persian-windows-1256.inc.phpJGDJJqlang/polish-iso-8859-2.inc.phpGDfilang/polish-utf-8.inc.php&GD&M| lang/polish-windows-1250.inc.phpGDKK"lang/portuguese-iso-8859-1.inc.php_GD_ ?#lang/portuguese-iso-8859-15.inc.php`GD`G؏lang/portuguese-utf-8.inc.phpGDUlang/remove_message.sh!GD!`Yu lang/romanian-iso-8859-1.inc.phpGDFlang/romanian-utf-8.inc.phpGDlang/russian-cp-866.inc.phpijGDij"lang/russian-koi8-r.inc.phpıGDıKlang/russian-utf-8.inc.phpQGDQ8!lang/russian-windows-1251.inc.phpбGDб^aS{#lang/serbian_cyrillic-utf-8.inc.phpGDy*lang/serbian_cyrillic-windows-1251.inc.phpGDxa$libraries/engines/berkeleydb.lib.phpGDc"libraries/engines/innobase.lib.phpGD3R libraries/engines/innodb.lib.phpM.GDM.xr libraries/engines/myisam.lib.phpGDFlibraries/export/csv.phpGDUlibraries/export/htmlexcel.phpGDlibraries/export/htmlword.phpM(GDM((ylibraries/export/latex.php5GD5Ylibraries/export/sql.php\GD\6libraries/export/xls.php-GD-1libraries/export/xml.phptGDtu,Flibraries/fpdf/font/courier.phpGDnik"libraries/fpdf/font/FreeSans.ctg.zGD3̤ libraries/fpdf/font/FreeSans.phpg]GDg] libraries/fpdf/font/FreeSans.z#GD#Z&libraries/fpdf/font/FreeSansBold.ctg.zGDl$libraries/fpdf/font/FreeSansBold.phpt-GDt-,-"libraries/fpdf/font/FreeSansBold.z߳GD߳lI?!libraries/fpdf/font/helvetica.phpn GDn A"libraries/fpdf/font/helveticab.phpn GDn >@#libraries/fpdf/font/helveticabi.phpo GDo "libraries/fpdf/font/helveticai.phpo GDo hQlibraries/fpdf/font/symbol.php" GD" libraries/fpdf/font/tahoma.phpGDlibraries/fpdf/font/tahomab.phpGDRZlibraries/fpdf/font/times.phpf GDf xlibraries/fpdf/font/timesb.phpl GDl libraries/fpdf/font/timesbi.phpi GDi twQlibraries/fpdf/font/timesi.phpe GDe $libraries/fpdf/font/zapfdingbats.php GD  libraries/fpdf/fpdf.phpGDlibraries/fpdf/READMExGDx6oUlibraries/fpdf/ufpdf.php8GD8Fylibraries/functions.jsGDRN) libraries/get_foreign.lib.php GD libraries/grab_globals.lib.php GD :^%libraries/header_http.inc.phpFGDFa4#libraries/header_meta_style.inc.php GD ֱulibraries/indexes.js GD x.libraries/information_schema_relations.lib.phpGD libraries/ip_allow_deny.lib.php.$GD.$ d libraries/kanji-encoding.lib.phpGD kTlibraries/keyhandler.jsGDIMOlibraries/left.jsGDk%8libraries/mcrypt.lib.php GD libraries/select_server.lib.php GD #libraries/select_theme.lib.php>GD>cG^libraries/server_privileges.js2GD2$ }libraries/sqlparser.data.phpc0GDc0_Elibraries/sqlparser.lib.php-iGD-iEr libraries/sqlvalidator.class.php"5GD"5CmUlibraries/sqlvalidator.lib.phpb GDb O%!libraries/storage_engines.lib.phpGDvllibraries/string.lib.php)GD)Ablibraries/tbl_change.js'GD'libraries/tbl_indexes.lib.php3GD3,Welibraries/tbl_move_copy.php2EGD2E]@libraries/tooltip.jsGD !libraries/transformations.lib.phpGD>.5Clibraries/transformations/application_octetstream__download.inc.php6GD6#<&libraries/transformations/generator.shXGDX[z(libraries/transformations/global.inc.php%GD%4*4libraries/transformations/image_jpeg__inline.inc.phpGDZ_2libraries/transformations/image_jpeg__link.inc.php"GD"3libraries/transformations/image_png__inline.inc.phpGD}&libraries/transformations/overview.php GD  libraries/transformations/READMEGDkm"libraries/transformations/TEMPLATEuGDu/libraries/transformations/template_generator.shGD8libraries/transformations/template_generator_mimetype.shGD/+libraries/transformations/TEMPLATE_MIMETYPEGD>$R8libraries/transformations/text_plain__dateformat.inc.phpRGDRN6libraries/transformations/text_plain__external.inc.phpp GDp 7libraries/transformations/text_plain__formatted.inc.phpGD7libraries/transformations/text_plain__imagelink.inc.phpGD2libraries/transformations/text_plain__link.inc.php\GD\0A4libraries/transformations/text_plain__substr.inc.phpGD/ libraries/url_generating.lib.phpW GDW v&:"libraries/user_password.jskGDk)ņlibraries/zip.lib.phpNGDNLICENSE;GD;'main.phpE~GDE~mult_submits.inc.phpP?GDP? h$ package.xml@8GD@8'Jn pdf_pages.phpYcGDYcLU'pdf_schema.phpGD2? phpinfo.phpGD&_queryframe.phppFGDpFJCquerywindow.phpCGDC֙READMEv GDv =>J read_dump.php?GD?RpRELEASE-DATE-2.6.3-pl1GD'scripts/check_lang.phpGD>scripts/convertcfg.plGD&qscripts/create-release.shGDc[cscripts/create_tables.sqlGD`<&scripts/create_tables_mysql_4_1_2+.sql~GD~wscripts/decode_bug.php3 GD3 kJHscripts/find_unused_messages.shGDscripts/remove_control_m.shGD)scripts/upgrade.pl GD K8|'scripts/upgrade_tables_mysql_4_1_2+.sqlGDW select.phphGDh,y*server_binlog.phpBGDB|cserver_collations.phpGDI#yserver_common.inc.phpGD~Ipserver_databases.phpTGDT -server_engines.php!GD!9M,fserver_export.phpGDserver_links.inc.phpeGDe{server_privileges.phpIGDIs_server_processlist.phpUGDUBVserver_status.php6GD6 server_variables.php GD k]sql.phpYGDYْTtbl_addfield.phpT*GDT*g tbl_alter.php&GD&5!%tbl_change.phpǭGDǭ9ƛOtbl_create.phpj$GDj$C[tbl_indexes.php@GD@%:tbl_move_copy.phpGDtbl_printview.phpIGDIBtbl_properties.inc.php}xGD}x'M tbl_properties.phpGDFV; tbl_properties_common.phpGDtbl_properties_export.phpjGDjDytbl_properties_links.phpGDtbl_properties_operations.php`GD`btbl_properties_structure.phpGDFtbl_properties_table_info.php' GD' >Ytbl_query_box.phptGDttbl_relation.phpeGDetbl_rename.php GD Tȷtbl_replace.php)GD)Eh9tbl_replace_fields.php"GD"Jtbl_row_action.phpMGDMxLztbl_select.php0MGD0Mgtest.phpGD" themes.phpGD[ћ-themes/darkblue_orange/css/theme_left.css.phpjGDjb.themes/darkblue_orange/css/theme_print.css.php>GD>.themes/darkblue_orange/css/theme_right.css.phpj:GDj:#1(themes/darkblue_orange/img/arrow_ltr.pngGDT(themes/darkblue_orange/img/arrow_rtl.pngGDq(themes/darkblue_orange/img/asc_order.png|GD| (themes/darkblue_orange/img/bd_browse.png GD kG(themes/darkblue_orange/img/bd_deltbl.pngGDZ&themes/darkblue_orange/img/bd_drop.pngQGDQg@'themes/darkblue_orange/img/bd_empty.png*GD*ϧ$+themes/darkblue_orange/img/bd_firstpage.pngGD'themes/darkblue_orange/img/bd_ftext.pngGD'themes/darkblue_orange/img/bd_index.png;GD;Kj(themes/darkblue_orange/img/bd_insrow.png[GD[E=n*themes/darkblue_orange/img/bd_lastpage.pngGD=F*themes/darkblue_orange/img/bd_nextpage.pngGDC+*themes/darkblue_orange/img/bd_prevpage.pngGD\)themes/darkblue_orange/img/bd_primary.pngGD: )themes/darkblue_orange/img/bd_sbrowse.pngGDPJ(themes/darkblue_orange/img/bd_select.png GD 7R(themes/darkblue_orange/img/bd_unique.pngGD@)themes/darkblue_orange/img/b_bookmark.pngtGDt'themes/darkblue_orange/img/b_insrow.pngGD()themes/darkblue_orange/img/b_lastpage.pngGDr]&themes/darkblue_orange/img/b_minus.pngGDQ&themes/darkblue_orange/img/b_newdb.pngGD'6'themes/darkblue_orange/img/b_newtbl.pngGD0Q)themes/darkblue_orange/img/b_nextpage.pngGD85#'themes/darkblue_orange/img/b_pdfdoc.png*GD*\%themes/darkblue_orange/img/b_plus.pngGDH2)themes/darkblue_orange/img/b_prevpage.pngGDF4G(themes/darkblue_orange/img/b_primary.pngGD][,&themes/darkblue_orange/img/b_print.png>GD>dr&themes/darkblue_orange/img/b_props.png&GD&*themes/darkblue_orange/img/b_relations.pngGDYO%themes/darkblue_orange/img/b_save.pngGD}a(themes/darkblue_orange/img/b_sbrowse.pngGD'E$themes/darkblue_orange/img/b_sdb.pngGDy}'themes/darkblue_orange/img/b_search.png]GD]\>[)themes/darkblue_orange/img/b_selboard.pngGDZW'themes/darkblue_orange/img/b_select.pngGDW]$themes/darkblue_orange/img/b_sql.pngBGDBƀw'themes/darkblue_orange/img/b_sqldoc.png"GD"J@(themes/darkblue_orange/img/b_sqlhelp.pngGDb+themes/darkblue_orange/img/b_tblanalyse.png(GD(f*themes/darkblue_orange/img/b_tblexport.pngGD>Xz*themes/darkblue_orange/img/b_tblimport.pngGD7Z'themes/darkblue_orange/img/b_tblops.pngYGDYRw.,themes/darkblue_orange/img/b_tbloptimize.png,GD,:":A%themes/darkblue_orange/img/b_tipp.png4GD4(fi'themes/darkblue_orange/img/b_unique.pngGDa8'themes/darkblue_orange/img/b_usradd.png GD c)themes/darkblue_orange/img/b_usrcheck.pngGD0yt(themes/darkblue_orange/img/b_usrdrop.pngGDk'(themes/darkblue_orange/img/b_usredit.pngGDo#Nf(themes/darkblue_orange/img/b_usrlist.pngGDG~%themes/darkblue_orange/img/b_view.pnguGDu1&themes/darkblue_orange/img/b_views.pngGDOv(themes/darkblue_orange/img/dot_black.pngGDKm'themes/darkblue_orange/img/dot_blue.pngGD(themes/darkblue_orange/img/dot_green.pngGD=N&themes/darkblue_orange/img/dot_red.pngGD9)themes/darkblue_orange/img/dot_violet.pngGDEx)themes/darkblue_orange/img/dot_yellow.pngGD$+themes/darkblue_orange/img/frm_linevrlt.pngGDU #themes/darkblue_orange/img/item.pngGDfr#'themes/darkblue_orange/img/item_ltr.pngGD"'themes/darkblue_orange/img/item_rtl.pngGDے(themes/darkblue_orange/img/logo_left.pngPGDP)?zp)themes/darkblue_orange/img/logo_right.png GD r&themes/darkblue_orange/img/php_sym.pngGD&=(themes/darkblue_orange/img/pma_logo2.png-GD-EaZN%themes/darkblue_orange/img/spacer.pngGD1n,$themes/darkblue_orange/img/s_asc.pngGD=m %themes/darkblue_orange/img/s_asci.pngGD1)L*themes/darkblue_orange/img/s_attention.pngGD'g'themes/darkblue_orange/img/s_cancel.pngGD->(themes/darkblue_orange/img/s_cancel2.pngGD̼#themes/darkblue_orange/img/s_db.pngGDuv%themes/darkblue_orange/img/s_desc.pngGDS,&themes/darkblue_orange/img/s_error.pngGD3՝'themes/darkblue_orange/img/s_error2.pngGDH7)themes/darkblue_orange/img/s_fulltext.png4GD4"F%themes/darkblue_orange/img/s_host.png<GD<$~%themes/darkblue_orange/img/s_info.pngGDGD>p'themes/darkblue_orange/img/s_passwd.pngGD(themes/darkblue_orange/img/s_process.pngjGDj$Z'themes/darkblue_orange/img/s_really.pngGD]l#'themes/darkblue_orange/img/s_reload.pngGD<7'themes/darkblue_orange/img/s_rights.pngGDjĩ'themes/darkblue_orange/img/s_status.png9GD95"$themes/darkblue_orange/img/s_tbl.pngGD&Uh&themes/darkblue_orange/img/s_theme.pngGDx%themes/darkblue_orange/img/s_vars.png2GD2"&themes/darkblue_orange/img/s_views.pngpGDpE3!%themes/darkblue_orange/img/s_warn.pngGD~(themes/darkblue_orange/img/tbl_error.pngGDB})themes/darkblue_orange/img/tbl_header.png@GD@%themes/darkblue_orange/img/tbl_th.pngQGDQ|h,themes/darkblue_orange/img/vertical_line.pngSGDS0F#themes/darkblue_orange/info.inc.phpGD%themes/darkblue_orange/layout.inc.phpGDn:!themes/darkblue_orange/screen.png IGD Ie9&themes/original/css/theme_left.css.phpGDb~'themes/original/css/theme_print.css.php>GD>'themes/original/css/theme_right.css.php+GD+TsM!themes/original/img/arrow_ltr.pngGDT!themes/original/img/arrow_rtl.pngGDq!themes/original/img/asc_order.png|GD| !themes/original/img/bd_browse.png GD kG!themes/original/img/bd_deltbl.pngGDZthemes/original/img/bd_drop.pngQGDQg@ themes/original/img/bd_empty.png*GD*ϧ$$themes/original/img/bd_firstpage.pngGD themes/original/img/bd_ftext.pngGD themes/original/img/bd_index.png;GD;Kj!themes/original/img/bd_insrow.png[GD[E=n#themes/original/img/bd_lastpage.pngGD=F#themes/original/img/bd_nextpage.pngGDC+#themes/original/img/bd_prevpage.pngGD\"themes/original/img/bd_primary.pngGD: "themes/original/img/bd_sbrowse.pngGDPJ!themes/original/img/bd_select.png GD 7R!themes/original/img/bd_unique.pngGD@"themes/original/img/b_bookmark.pngtGDt themes/original/img/b_insrow.pngGD("themes/original/img/b_lastpage.pngGDr]themes/original/img/b_minus.pngGDQthemes/original/img/b_newdb.pngGD'6 themes/original/img/b_newtbl.pngGD0Q"themes/original/img/b_nextpage.pngGD85# themes/original/img/b_pdfdoc.png*GD*\themes/original/img/b_plus.pngGDH2"themes/original/img/b_prevpage.pngGDF4G!themes/original/img/b_primary.pngGD][,themes/original/img/b_print.png>GD>drthemes/original/img/b_props.png&GD&#themes/original/img/b_relations.pngGDYOthemes/original/img/b_save.pngGD}a!themes/original/img/b_sbrowse.pngGD'Ethemes/original/img/b_sdb.pngGDy} themes/original/img/b_search.png]GD]\>["themes/original/img/b_selboard.pngGDZW themes/original/img/b_select.pngGDW]themes/original/img/b_sql.pngBGDBƀw themes/original/img/b_sqldoc.png"GD"J@!themes/original/img/b_sqlhelp.pngGDb$themes/original/img/b_tblanalyse.png(GD(f#themes/original/img/b_tblexport.pngGD>Xz#themes/original/img/b_tblimport.pngGD7Z themes/original/img/b_tblops.pngYGDYRw.%themes/original/img/b_tbloptimize.png,GD,:":Athemes/original/img/b_tipp.png4GD4(fi themes/original/img/b_unique.pngGDa8 themes/original/img/b_usradd.png GD c"themes/original/img/b_usrcheck.pngGD0yt!themes/original/img/b_usrdrop.pngGDk'!themes/original/img/b_usredit.pngGDo#Nf!themes/original/img/b_usrlist.pngGDG~themes/original/img/b_view.pnguGDu1themes/original/img/b_views.pngGDOv!themes/original/img/dot_black.pngGDKm themes/original/img/dot_blue.pngGD!themes/original/img/dot_green.pngGD=Nthemes/original/img/dot_red.pngGD9"themes/original/img/dot_violet.pngGDEx"themes/original/img/dot_yellow.pngGD$$themes/original/img/frm_linevrlt.pngGDU themes/original/img/item.pngGDfr# themes/original/img/item_ltr.pngGD" themes/original/img/item_rtl.pngGDے!themes/original/img/logo_left.pngHGDHⱽ"themes/original/img/logo_right.pngGDxthemes/original/img/php_sym.pngGD&=!themes/original/img/pma_logo2.png-GD-EaZNthemes/original/img/spacer.pngGD1n,themes/original/img/s_asc.pngGD=m themes/original/img/s_asci.pngGD1)L#themes/original/img/s_attention.pngGD'g themes/original/img/s_cancel.pngGD->!themes/original/img/s_cancel2.pngGD̼themes/original/img/s_db.pngGDuvthemes/original/img/s_desc.pngGDS,themes/original/img/s_error.pngGD3՝ themes/original/img/s_error2.pngGDH7"themes/original/img/s_fulltext.png4GD4"Fthemes/original/img/s_host.png<GD<$~themes/original/img/s_info.pngGDGD>p themes/original/img/s_passwd.pngGD!themes/original/img/s_process.pngjGDj$Z themes/original/img/s_really.pngGD]l# themes/original/img/s_reload.pngGD<7 themes/original/img/s_rights.pngGDjĩ themes/original/img/s_status.png9GD95"themes/original/img/s_tbl.pngGD&Uhthemes/original/img/s_theme.pngGDxthemes/original/img/s_vars.png2GD2"themes/original/img/s_views.pngpGDpE3!themes/original/img/s_warn.pngGD~!themes/original/img/tbl_error.pngGDB}"themes/original/img/tbl_header.png@GD@themes/original/img/tbl_th.pngQGDQ|h%themes/original/img/vertical_line.pngSGDS0Fthemes/original/info.inc.phpGD/2themes/original/layout.inc.phpGDthemes/original/screen.png\GD\)TODOGDtransformation_wrapper.phpGDo"translators.html_GD_yiuser_password.phpGD"BT phpMyAdmin />
$per_page)) { $showall = ''; } else { $showall = ''; } $session_max_rows = $per_page; $pageNow = @floor($pos / $session_max_rows) + 1; $nbTotalPage = @ceil($the_total / $session_max_rows); if ($the_total > $per_page) { $gotopage = PMA_pageselector( 'browse_foreigners.php?field=' . urlencode($field) . '&' . PMA_generate_common_url($db, $table) . $pk_uri . '&fieldkey=' . (isset($fieldkey) ? $fieldkey : '') . '&', $session_max_rows, $pageNow, $nbTotalPage ); } else { $gotopage = ''; } $header = ' '; echo $header; if (isset($disp_row) && is_array($disp_row)) { function dimsort($arrayA, $arrayB) { $keyA = key($arrayA); $keyB = key($arrayB); if ($arrayA[$keyA] == $arrayB[$keyB]) { return 0; } return ($arrayA[$keyA] < $arrayB[$keyB]) ? -1 : 1; } $mysql_key_relrow = array(); $mysql_val_relrow = array(); $count = 0; foreach ($disp_row AS $disp_row_key => $relrow) { if ($foreign_display != FALSE) { $val = $relrow[$foreign_display]; } else { $val = ''; } $mysql_key_relrow[$count] = array($relrow[$foreign_field] => $val); $mysql_val_relrow[$count] = array($val => $relrow[$foreign_field]); $count++; } usort($mysql_val_relrow, 'dimsort'); $hcount = 0; for ($i = 0; $i < $count; $i++) { $hcount++; $bgcolor = ($hcount % 2) ? $cfg['BgcolorOne'] : $cfg['BgcolorTwo']; if ($cfg['RepeatCells'] > 0 && $hcount > $cfg['RepeatCells']) { echo $header; $hcount = -1; } $val = key($mysql_val_relrow[$i]); $key = $mysql_val_relrow[$i][$val]; if (PMA_strlen($val) <= $cfg['LimitChars']) { $value = htmlspecialchars($val); $vtitle = ''; } else { $vtitle = htmlspecialchars($val); $value = htmlspecialchars(PMA_substr($val, 0, $cfg['LimitChars']) . '...'); } $key_equals_data = isset($data) && $key == $data; ?>
' . $strKeyname . ' ' . $strDescription . ' ' . $showall . ' ' . $gotopage . ' ' . $strDescription . ' ' . $strKeyname . '
' : '') . '' . htmlspecialchars($key) . '' . ($key_equals_data ? '' : ''); ?> ' : '') . '' . $value . '' . ($key_equals_data ? '' : ''); ?> ' : '') . '' . $value . '' . ($key_equals_data ? '' : ''); ?> ' : '') . '' . htmlspecialchars($key) . '' . ($key_equals_data ? '' : ''); ?>
<?php echo $strCalendar;?> ' . "\n"; } ?>
---------------------- phpMyAdmin - Changelog ---------------------- $Id: ChangeLog,v 2.1112.2.14 2005/07/04 21:47:07 lem9 Exp $ $Source: /cvsroot/phpmyadmin/phpMyAdmin/ChangeLog,v $ 2005-07-04 Marc Delisle * tbl_properties_table_info.php: bug #1231917, commands out of sync 2005-07-03 Marc Delisle * Documentation.html: link in doc, thanks to Cedric Corazza ### 2.6.3 released 2005-07-02 Marc Delisle * db_operations.php: bug #1230224, db rename and old pmadb information 2005-07-01 Marc Delisle * Documentation.html: patch #1229673, improvement to big-file-import instructions, thanks to Isaac Bennetch - ibennetch 2005-06-30 Marc Delisle * lang/hungarian update, thanks to Mihly Mszros * lang/japanese: updated, thanks to Tadashi Jokagi (elf2000) * lang/catalan update, thanks to Xavier Navarro (xavin). * lang/lithuanian: Updated, thanks to Vilius Simonaitis - maumas98 * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). 2005-06-29 Marc Delisle * tbl_properties_table_info.php: bug #1228862, creating a table under MySQL 5.x with wrong table type 2005-06-28 Marc Delisle * tbl_properties_operations.php: bug #1225635, cannot change table's collation under MySQL 5.0.4 2005-06-24 Michal .iha. * tbl_change.php, tbl_properties_links.php, libraries/export/sql.php: Remove error reporting. * lang/sync_lang.sh: Fix belarusian name. 2005-06-24 Marc Delisle * db_operations.php: problem renaming a db 2005-06-24 Alexander M. Turek * lang/german-*.inc.php: Updates. * db_operations.php: Cleaning up Marc's code... ;-p 2005-06-23 Michal .iha. * lang/czech: Update. 2005-06-22 Alexander M. Turek * tbl_properties_structure.php: Undefined index. 2005-06-22 Garvin Hicking * server_databases.php: Bug #1225315, wrong message displayed when no databases were dropped. * tbl_properties.inc.php: Patch #1225452, JS error for getting the value of a select field in certain browsers. 2005-06-19 Marc Delisle * lang/chinese_traditional: Updates, thanks to Siu Sun * lang/italian: Updates, thanks to Pietro Danesi * lang/finnish: update, thanks to Jouni Kahkonen * lang/norwegian: Update, thanks to Sven-Erik Andersen * lang/mongolian update, thanks to Bayarsaikhan Enkhtaivan * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). 2005-06-18 Marc Delisle * libraries/sqlparser.lib.php: bug 1221602, undefined variable when trying to use a reserved word as an identifier * db_operations.php, libraries/database_interface.lib.php: bug #1221359, Copying a db containing a MERGE table 2005-06-12 Marc Delisle * tbl_properties.inc.php: visually bind the Add x fields dialog to its submit button * db_operations.php: bug #1215688, Copying database does not preserve default charset and collation ### 2.6.3-rc1 released 2005-06-12 Olivier Mueller * lang/*, server_privileges.php: added strings for RFE #1197482: $strGeneratePassword, $strGenerate and $strCopy 2005-06-11 Marc Delisle * tbl_properties_export.php: bug #1169791, exporting results from queries with limit keyword * lang/mongolian* update, thanks to Bayarsaikhan Enkhtaivan * lang/finnish: update, thanks to Jouni Kahkonen * lang/norwegian: Update, thanks to Sven-Erik Andersen * lang/galician: Updates, thanks to Xosé Calvo. * lang/belarusian, libraries/select_lang.lib.php: belarusian is now belarusian_cyrillic; added belarusian_latin, thanks to Jaska Zedlik 2005-06-08 Marc Delisle * libraries/common.lib.php: bug #1216901, missing backquotes on the Browse feature in case of duplicate entry 2005-06-07 Marc Delisle * lang/tatarish*: updates, thanks to Albert Fazlí * config.inc.php: bug #1215950, typo in comment 2005-06-06 Marc Delisle * lang/tatarish*, /sync_lang.sh, libraries/select_lang.lib.php, translators.html: renamed "tatar" to "tatarish" (tatar is a different language and this translation is really tatarish) * lang/mongolian*, libraries/select_lang.lib.php, translators.html, Documentation.html, README: new language (mongolian), thanks to Bayarsaikhan Enkhtaivan 2005-06-05 Marc Delisle * libraries/functions.js: bug #1207405, invalid SQL when creating table with zero fields * sql.php: bug #1204951, left frame browse icon alt tag not updated on emptying table 2005-06-05 Michal Čihař * lang/czech: Update. 2005-06-04 Marc Delisle * lang/chinese_traditional: Updates, thanks to Siu Sun. * lang/finnish: update, thanks to Jouni Kahkonen * lang/norwegian: Update, thanks to Sven-Erik Andersen * db_details_structure.php: optional message $strNumberOfFields, will use $strFields if not defined * db_operations.php, lang/*: bug #1212997, db copy should not always perform CREATE DATABASE 2005-06-03 Marc Delisle * lang/tatar*, /sync_lang.sh, libraries/select_lang.lib.php, translators.html, Documentation.html, README: new language (tatar), thanks to Albert Fazlí 2005-06-01 Marc Delisle * Documentation.html: bug #1213761, hint about Hardened PHP and the Missing parameters problem, thanks to Klaus Dorninger 2005-05-31 Marc Delisle * db_details_structure.php: patch 1209863, XHTML validity, thanks to Ryan Schmidt 2005-05-29 Marc Delisle * tbl_change.php: bug #1184325, Label IDs mismatch for ENUM type, thanks to Ryan Schmidt * footer.inc.php: bug #1209891, db list not refreshed when the left frame is positionned on a db, then a manual DROP DATABASE it done on another db * db_operations.php, footer.inc.php: bug #1170227, copying a db does not refresh the queryframe 2005-05-27 Marc Delisle * tbl_properties.inc.php: bug #1205940, current timestamp checkbox when field type changes 2005-05-26 Marc Delisle * tbl_create.php: bug #1207406, undefined index from PMA_setComment() * sql.php: bug #1204913, left frame update on manual table rename 2005-05-25 Marc Delisle * tbl_properties.inc.php: bug #1207404, undefined variables 2005-05-24 Marc Delisle * libraries/common.lib.php: bug #1207395, undefined theme_generation and theme_version, thanks to Ryan Schmidt * tbl_properties_operations.php: bug #1207212, changing table type under MySQL 5.0.4 2005-05-22 Marc Delisle * libraries/charset_conversion.lib.php: diacritics wrongly converted in Browse mode under MySQL 4.1.x if AllowAnywhereRecoding set to TRUE * tbl_properties_structure.php, tbl_properties.inc.php, libraries/sqlparser.lib.php: bug #1163595, NULL detection of TIMESTAMP * many files: bug #1193250, XHTML compliance, thanks to Ryan Schmidt * themes/[darkblue_orange|original]/css/theme_print.css.php: spelling error Hevetica -> Helvetica, thanks to Castorius and Isaac Bennetch - ibennetch 2005-05-19 Marc Delisle * tbl_select.php: bug #1204235, searching on a VARBINARY field 2005-05-18 Marc Delisle * export.php: bug #1193442, 8 extra spaces at end of export area, thanks to Ryan Schmidt * db_details_structure.php: bug #1193430, zero_rows parameter not url-encoded, thanks to Ryan Schmidt 2005-05-17 Marc Delisle * server_privileges.php, libraries/server_privileges.js: make the password generator work also on user account editing 2005-05-17 Olivier Mueller * server_privileges.php, libraries/server_privileges.js: RFE #1197482, password generator on user creation. RFC: ok like that? TODO: add strings. 2005-05-15 Marc Delisle * sql.php, libraries/sqlparser.lib.php: bug #1120434, comment at the end of query is applied to appended LIMIT as well 2005-05-13 Marc Delisle * tbl_printview.php: bug #1178760, header not sent when displaying print view of multi tables, thanks to Hrvoje Novosel - interghost * libraries/functions.js: Patch #1191447, hand pointer on mouseover and mousedown, thanks to Ken Stanley - eclipsboi 2005-05-11 Marc Delisle * tbl_properties.inc.php: bug #1069012, table collation forgotten when adding fields * libraries/storage_engines.lib.php: bug 1180119, undefined variable when showing the details of a storage engine under MySQL 4.0.x 2005-05-10 Marc Delisle * libraries/sqlparser.lib.php: bug #1198156, undefined variable when exporting without enclosing with backquotes 2005-05-08 Marc Delisle * db_details_links.php: patch #1196806, add a Privileges tab in db view, thanks to Herman van Rink - helmo * server_privileges.php: add a back link to the db on which we are checking privileges * Documentation.html: FAQ 3.13 about the MySQL API having problem dealing with USE followed with a db name containing an hyphen * read_dump.php: bug #1189664, js error when 2 queries submitted at once 2005-05-08 Olivier Mueller * scripts/upgrade.pl: new script to let unix admins upgrade phpMyadmin with one command and 5 seconds. To be improved, but is working fine here (tm). Based on: http://www.phpmyadmin.net/latest.txt * server_privileges.php: always display the "Add a new user" link on the User overview page (no more need to click on [show all] or an initial before) 2005-05-05 Marc Delisle * libraries/mysql_charsets.lib.php: bug #1186983, missing character sets and collations (temporary workaround) * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). 2005-05-04 Marc Delisle * Documentation.html: improvement about PmaAbsoluteUri, thanks to Isaac Bennetch - ibennetch 2005-05-03 Marc Delisle * libraries/common.lib.php: bug #1185152, setting collation for a field, thanks to Ryan Schmidt - ryandesign 2005-05-02 Marc Delisle * export.php: bug #1123284, avoid double compression when zlib.output_compression is On, thanks to unclef at users.sourceforge.net * libraries/common.lib.php: bug #1193223, undefined index htmlexcel_null, thanks to Ryan Schmidt - ryandesign 2005-05-01 Marc Delisle * server_status.php: bug #1193225, missing * tbl_properties.inc.php: bug #1193353, js error on creating table 2005-04-30 Marc Delisle * db_operations.php, libraries/tbl_move_copy.php: bug #1192468, bookmarks copied too many times 2005-04-27 Marc Delisle * lang/finnish: update, thanks to Jouni Kahkonen * lang/russian: update, thanks to lobovich * libraries/sqlparser.lib.php: bug #1179887, ordering by count(*) 2005-04-26 Marc Delisle * tbl_properties_structure.php, tbl_properties.inc.php: bug #1190092, wrong detection of NULL fields with MySQL 5.0.x * lang/finnish: big update, thanks to Jouni Kahkonen 2005-04-25 Marc Delisle * libraries/sqlparser*: bug #1185173. A query using the Storage table name and an alias, returned no result. I changed the parser to add a list of "forbidden" reserved words, as listed in the MySQL manual (reserved words). Those are not allowed as a table/column name, but others (like Storage) are allowed. Now the query works. TODO: do not pretty print in color, in this case * libraries/common.lib.php: bug #1179241, wrong escaping of apostrophe in generated PHP code 2005-04-25 Michal Čihař * lang/czech: Update. * lang/english: Fix typo. 2005-04-24 Marc Delisle * left.php, queryframe.php: bug #1168784, please respect the db order given in only_db 2005-04-16 Marc Delisle * lang/chinese_simplified: Updates, thanks to mysf at etang.com * lang/serbian: Updated, thanks to Mihailo Stefanovic (mikis). * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/spanish: Updated, thanks to Daniel Hinostroza (hinostroza). * lang/galician: Updates, thanks to Xosé Calvo. * new language: belarusian, thanks to Jaska Zedlik * tbl_properties_export.php: bug #1180860, error going from Export to Insert tab ### 2.6.2 released 2005-04-14 Marc Delisle * db_details_structure.php: Search icon centering 2005-04-13 Marc Delisle * tbl_alter.php: undefined $field_comments 2005-04-10 Alexander M. Turek * lang/*.inc.php: New messages for MySQL 5.0 privileges. 2005-04-10 Marc Delisle * lang/bulgarian: Updated, thanks to Stanislav Yordanov (stanprog). * server_privileges.php: bug #1179969, problem editing a user's profile (and there was a problem also with the detection of an already existing user) 2005-04-09 Alexander M. Turek * libraries/sqlparser.data.php: Added keyword ROUTINE. 2005-04-08 Marc Delisle * lang/catalan update, thanks to Xavier Navarro (xavin). 2005-04-07 Alexander M. Turek * libraries/select_lang.lib.php, lang/english-iso-8859-15.inc.php: en-iso-8859-15. * lang/*.inc.php: New messages for MySQL 5.0 privileges. 2005-04-07 Marc Delisle * tbl_properties.inc.php, tbl_alter.php: bug #1176896, undefined variable * libraries/common.lib.php: wrong test when the field's type is TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 2005-04-03 Marc Delisle ### 2.6.2-rc1 released 2005-04-01 Marc Delisle * tbl_addfield.php: TIMESTAMP options support * libraries/common.lib.php: DEFAULT CURRENT_TIMESTAMP is only for TIMESTAMP (bug when changing from a TIMESTAMP to a non-TIMESTAMP type) * (same): bug #1163595, problem 4: a TIMESTAMP must be explicitely set to NULL to have the NULL attribute * libraries/tbl_move_copy.php: bug #1168996, error copying InnoDB table with FK constraints to a table in the same db 2005-03-31 Alexander M. Turek * left.php: Undefined offset (Bug #1174045). 2005-03-31 Marc Delisle * Documentation.html: added FAQ 5.17 about problem with Firefox when the Tabbrowser Extensions plugin is installed * tbl_properties.inc.php: TIMESTAMP options improved looks, thanks to Garvin * tbl_properties.inc.php: TIMESTAMP default CURRENT_TIMESTAMP checkbox made dynamic, depending on the field's type * tbl_create.php, libraries/relation.lib.php: TIMESTAMP options support 2005-03-30 Alexander M. Turek * server_databases.php: Bug #1172782 (Don't allow to drop information_schema). * libraries/mysql_charsets.lib.php: Typo. * lang/german-*.inc.php: Better translation. 2005-03-30 Marc Delisle * Documentation.html: Patch #1164699, clarification about PmaAbsoluteURI, thanks to Isaac Bennetch - ibennetch * lang/english: improvements, thanks to Ryan Schmidt - ryandesign * lang/*: removed unused message and modified strCheckOverhead where still untranslated * tbl_properties.inc.php: bug #1163595 (problem #5): after an error modifying TIMESTAMP options, the table structure editing form was shown without the new options. 2005-03-29 Marc Delisle * libraries/common.lib.php: XSS vulnerability on convcharset 2005-03-29 Alexander M. Turek * server_collations.php, libraries/mysql_charsets.lib.php: Don't offer unavailable collations (bug #1172517). 2005-03-28 Alexander M. Turek * left.php: Implemented the forgotten view icon. 2005-03-27 Marc Delisle * lang/serbian: Updated, thanks to Mihailo Stefanovic (mikis). * libraries/relation.lib.php: bug #1170549, adding fields NOT NULL under MySQL 4.1 ### 2.6.2-beta1 released 2005-03-27 Alexander M. Turek * libraries/defines.lib.php, themes/*/info.inc.php: Marked 2.6.0 / 2.6.1 themes as imcompatible because of recent changes. * libraries/information_schema_relations.lib.php, libraries/relation.lib.php: information_schema relations. 2005-03-26 Alexander M. Turek * libraries/engines/innodb.lib.php: Caught possible devision by zero. * lang/dutch-iso-8859-15.inc.php, lang/finnish-iso-8859-15.inc.php, lang/italian-iso-8859-15.inc.php, lang/portoguese-iso-8859-15.inc.php, lang/spanish-iso-8859-15.inc.php, libraries/select_lang.lib.php: Added more Latin9 language files. 2005-03-25 Marc Delisle * tbl_properties.inc.php: bug #1170255, undefined index: Field 2005-03-25 Alexander M. Turek * db_details_structure.php: Let's prefer separate icons over CSS 3 hacks for marking a functionality as unavailable. * libraries/relation.lib.php: - Removed recoding function calls from controluser queries as they do not depend on the connection charset anymore; - Added emulated relations for some information_schema tables. To be continued. 2005-03-24 Alexander M. Turek * libraries/dbi/*.dbi.lib.php, libraries/common.lib.php, libraries/database_interface.lib.php: - Force separate connection for controluser queries; - Don't apply collation_connection settings to controluser connections. * lang/galician-*.inc.php: Updates, thanks to Xosé Calvo. * lang/chinese_traditional-*.inc.php: Updates, thanks to Siu Sun. 2005-03-22 Marc Delisle * header.inc.php: undefined index tbl_is_view when copying a table with constraints and an error occurs 2005-03-20 Marc Delisle * lang/spanish: Updated, thanks to Daniel Hinostroza (hinostroza). * tbl_properties.inc.php: do not add ON UPDATE CURRENT_TIMESTAMP twice 2005-03-19 Alexander M. Turek * lang/german-*.inc.php: Translations #1120157 (bad translation of $strAddSearchConditions). * libraries/select_lang.lib.php, lang/polish-windows-1250.inc.php: Translations #1161402 (added pl-win1250), thanks to Jakub Wilk (ubanus). * libraries/select_lang.lib.php, lang/german-iso-8859-15.inc.php, lang/french-iso-8859-15.inc.php: Added ISO-8859-15 (Latin9) editions of the German and French language files for testing. 2005-03-19 Marc Delisle * lang/catalan update, thanks to Xavier Navarro (xavin). * lang/russian update, thanks to gunsky * lang/polish: Updated, thanks to Jakub Wilk (ubanus). 2005-03-18 Marc Delisle * lang/estonian: Update thanks to Alvar Soome - finsoft. * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/brazilian-portuguese: big update, thanks to Airon Luis Pereira - thedarkness * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). * lang/japanese: updated, thanks to Tadashi Jokagi (elf2000) 2005-03-18 Alexander M. Turek * lang/german-*.inc.php: Updates. 2005-03-17 Marc Delisle * Documentation.html: bug #1165148, typo in Documentation.html * lang/indonesian: Update thanks to Rachim Tamsjadi - tamsy. * lang/galician: Updated, thanks to Xosé Calvo. 2005-03-16 Marc Delisle * tbl_properties_structure.php, tbl_alter.php, tbl_properties.inc.php, config.inc.php (comment only), libraries/common.lib.php: experimental support for table structure editing with MySQL 4.1.2+ TIMESTAMP options 2005-03-13 Marc Delisle * tbl_row_delete.php renamed to tbl_row_action.php (RFE 1097729) 2005-03-12 Marc Delisle * tbl_properties_structure.php, libraries/sqlparser.lib.php: start merging code for MySQL 4.1.2 TIMESTAMP options support 2005-03-10 Alexander M. Turek * libraries/relation.lib.php: Bug #1159415. 2005-03-10 Marc Delisle * libraries/database_interface.lib.php, libraries/relation.lib.php: problem with getting comments when creating a new table under MySQL 4.1.x with mysql extension 2005-03-09 Marc Delisle * db_operations.php: db comments updating broken * libraries/relation.lib.php: bug #1159415, data dictionary broken 2005-03-08 Michael Keck * themes/*/img/bd_insrow.png, themes/*/bd_insrow.png: Added disabled versions of insert-row icons. 2005-03-08 Marc Delisle * lang/french update 2005-03-07 Marc Delisle * libraries/relation.lib.php: db comments broken * libraries/dbi/*.php, lang/*: new $strSocketProblem message * db_details.php, tbl_query_box.php, libraries/bookmark.lib.php: bookmark improvement, based on patch #1034161 by Ryan Schmidt - ryandesign: sort bookmarks by label, remove the number before each bookmark in the drop-down choice. For this I had to change some logic in the calling scripts. It's still possible to have the same label more than once. 2005-03-07 Michal Čihař * db_printview.php, tbl_printview.php, css/phpmyadmin.css.php, libraries/header_meta_style.inc.php: Actually use print style in themes, also fixes RFE #1120880. * sql.php: Better calculate inserted row id (bug #1156963). * db_details_links.php, db_details_structure.php: Show database comment on each tab (same as we do with table comments). 2005-03-06 Michael Keck * themes/*/img/bd_deltbl.png, themes/*/bd_drop.png: Added disabled versions of drop icons. 2005-03-06 Michal Čihař * export.php, libraries/display_export.lib.php, config.inc.php, libraries/config_import.lib.php, libraries/export/htmlexcel.php, libraries/export/htmlword.php, lang/*: Added Microsoft Word and Excel 2000 export (RFE #1155122). * lang/czech: Updated, thanks to Michal Marek (twofish) for "storage engine" translation. * lang/english: Nothing to translate here. * Documentation.html: Document new Excel export. * config.inc.php, libraries/config_import.lib.php, libraries/display_export.lib.php, libraries/export/htmlword.php: Word export now can contain table structure and better handles more tables/databases export. * db_operations.php, export.php, main.php, tbl_move_copy.php, libraries/common.lib.php, libraries/select_theme.lib.php, libraries/auth/cookie.auth.lib.php: Unified cookie path handling, added / to end of path (bug #1155373). 2005-03-06 Marc Delisle * libraries/relation.lib.php, /display_export.lib.php, /export/sql.php: native comments. For MySQL 4.1.x+ I do not display the "Add into comments ... Comments" choice, since they are part of the structure 2005-03-06 Alexander M. Turek * lang/*.inc.php, libraries/engines/innodb.lib.php: InnoDB buffer pool activity statistics. * server_status.php: Removed InnoDB Status sub-page. It is now part of server_engines.php. * lang/*.inc.php, libraries/engines/innodb.lib.php: Buffer pool size indicators. * libraries/mysql_charsets.lib.php: Don't check the character set of the virtual database "information_schema" (MySQL 5.0). * db_details_links.php, db_details_structure.php: Don't allow the user to change anything in MySQL 5.0's information_schema database. 2005-03-05 Marc Delisle * tbl_alter.php, tbl_addfield.php, db_datadict.php, pdf_schema.php, tbl_create.php, libraries/common.lib.php, /relation.lib.php, /database_interface.lib.php: MySQL 4.1.x native comments 2005-03-05 Alexander M. Turek * server_engines.php, lang/*.inc.php, libraries/storage_engines.lib.php libraries/engines/berkeleydb.lib.php, libraries/engines/bdb.lib.php, libraries/engines/innobase.lib.php, libraries/innodb.lib.php, libraries/engines/myisam.lib.php: - Moved engine-specific settings into plugins; - Added ability to create multiple sub-pages in server_engines.php for a specific engine; - Added a few InnoDB variables. To be continued. :-) - New InnoDB buffer pool monitor for MySQL >= 5.0.2. 2005-03-04 Marc Delisle * Documentation.html, libraries/common.lib.php: new FAQ 2.8 about Missing parameters, and when the error happens, show a link to FAQ 2005-03-03 Alexander M. Turek * libraries/grab_globals.lib.php: Bug #1153079 (Updating columns starting with "str"). * header.inc.php: Wrong icon for views. * libraries/sqlparser.data.php: Added more missing date / time functions. 2005-03-02 Michal Čihař * libraries/export/sql.php, libraries/display_export.lib.php: Do not offer modes not available in current MySQL version, do not fail on error when setting SQL_MODE (bug #1155209). 2005-03-02 Marc Delisle * main.php: bug #1154307, wrong text for alt, thanks to Isaac Bennetch - ibennetch * Documentation.html: bug #1126156, FAQ 6.12 reworked, thanks to Isaac Bennetch - ibennetch 2005-03-01 Marc Delisle * Documentation.html: bug #1153684, wrong doc for PDF pages generation, thanks to Ryan Schmidt * libraries/auth/config.auth.lib.php: bug #1149565, tooltip.js undefined var 2005-02-27 Alexander M. Turek * libraries/sqlparser.data.php: Added missing MySQL functions STR_TO_DATE and GET_FORMAT (bug #1152310). 2005-02-27 Michal Čihař * server_binlog.php: MySQL 5 compatibility (bug #1151960). 2005-02-26 Marc Delisle * Documentation.html: added FAQ 5.16 about various IE and Windows problems. Thanks to Michael Keck. * main.php: bug #1143528, Reload MySQL not seen on MySQL 4.1.2 2005-02-24 Alexander M. Turek * libraries/grab_globals.lib.php: Fixed the fix, thanks to Marc. :-) 2005-02-23 Marc Delisle * libraries/auth/cookie.auth.lib.php: bug #1149373, error when blowfish_secret is empty 2005-02-23 Alexander M. Turek * libraries/grab_globals.lib.php: More hotfixes against bug #1149381. * libraries/mysql_charsets.lib.php: Detection for new Japanese charsets (cp932 and eucjpms) that will be introduced with MySQL 5.0.3. * libraries/select_lang.lib.php: Removed the UTF-8 deactivation code that we had already commented out a long time ago. 2005-02-22 Alexander M. Turek * libraries/grab_globals.lib.php: Hotfix against bug #1149381 and parts of bug #1149383. 2005-02-21 Marc Delisle * pdf_pages.php: patch #1120466 (modified): optional column names in visual scratchboard, thanks to Remco Aalbers - remcoa 2005-02-17 Marc Delisle * header.inc.php, queryframe.php: HTML improvement, thanks to Armel Fauveau * server_privileges.php: bug #1113788, escaping character removed by error 2005-02-16 Alexander M. Turek * db_details_export.php: Views are not exportable yet. * themes/*/css/theme_right.css.php: Allow to mark a whole row as disabled. * server_engines.php: Use new CSS class 'disabled' for unavailable engines. 2005-02-14 Michal Čihař * tbl_printview.php, libraries/tbl_indexes.lib.php: Fix displaying indexes for print view, use same function as for normal view (bug #1119388). * css/print.css, libraries/tbl_indexes.lib.php, libraries/header_meta_style.inc.php: Use CSS for hiding print button rather than javascript. 2005-02-14 Marc Delisle * tbl_properties_table_info.php: avoid errors #1046, no database selected in MySQL 5.0.2 * lang/romanian: Updated, thanks to Valics Lehel. 2005-02-13 Marc Delisle * lang/french update * server_privileges.php: bug #1118137, host not changing when editing user 2005-02-10 Marc Delisle * Documentation.html: new FAQ 1.32 about using HTTP auth under IIS 2005-02-09 Marc Delisle * config.inc.php, Documentation.html: bug #1115327, document the maximum number of characters for blowfish_secret 2005-02-09 Alexander M. Turek * lang/italian-*.inc.php: Updates, thanks to Pietro Danesi. 2005-02-08 Michal Čihař * export.php: Fix export of SQL for Safari (bug #1113015). 2005-02-07 Marc Delisle * libraries/dbi/*: bug #1116933, PMA_DBI_free_result(): do not send a boolean to mysqli_free_result() or mysql_free_result(), it expects a result resource * libraries/tbl_move_copy.php: bug #1117112, commands out of sync when using "copy table" operation * libraries/common.lib.php: bug #1114363, error when SHOW DATABASES is disabled 2005-02-07 Alexander M. Turek * libraries/mcrypt.lib.php: Bug #1117907 ("wrong parameter count" with php 4.1.x. 2005-02-06 Alexander M. Turek * header.inc.php, tbl_properties_table_info.php: View detection for header.inc.php. * tbl_properties_links.php: Adjusted tab bar for views. 2005-02-05 Marc Delisle * tbl_relation.php: removed comments handling (pmadb-style) from relation view 2005-02-04 Michal Čihař * tbl_change.php: Fix TIMESTAMP editing on MySQL 4.1 (bug #1114120). 2005-02-03 Alexander M. Turek * tbl_addfield.php: Bug #1040682 (adding field with collation). 2005-02-02 Marc Delisle * libraries/dbi/*: PMA_DBI_num_rows(): do not send a boolean to mysqli_num_rows() or mysql_num_row(), it expects a result resource * tbl_properties.inc.php: bug #1114550, changing the type of a float unsigned column 2005-01-30 Marc Delisle * libraries/export/sql.php: bug #1108521, part 2: mysqli_num_rows cannot be used with MYSQL_USE_RESULT 2005-01-29 Alexander M. Turek * lang/japanese-utf-8.inc.php: Bug #1111855 ("Undefined index" when using the Janapese language file under MySQL 4.1. 2005-01-28 Marc Delisle * libraries/dbi/mysqli.dbi.lib.php: bug #1111706, call to undefined function PMA_reloadNavigation(). A failed connection was not properly detected * libraries/export/sql.php: bug #1108521, mysqli_free_result() expects parameter 1 to be a result 2005-01-27 Marc Delisle * libraries/fpdf/fpdf.php: bug #1106146, missing header for PDF, thanks to Michal * libraries/display_tbl.lib.php: the LongOperation message should be just for InnoDB 2005-01-27 Michal Čihař * read_dump.php: Fix detection of SELECT query to display on multiple submits (bug #1110727). 2005-01-23 Marc Delisle * tbl_query_box.php: bug #1107937, undefined $fields_list * lang/estonian: Update thanks to Alvar Soome - finsoft. ### 2.6.1 released 2005-01-23 Michal Čihař * export.php: Back to Content-Type application/x-bzip2 on bzip2 export (bug #1106652). 2005-01-23 Alexander M. Turek * libraries/sqlparser.data.php: Added some keywords. 2005-01-22 Marc Delisle * libraries/bookmark.lib.php: bug #1103289: num_rows and MYSQL_USE_RESULT, and fix a typo "boommark" * lang/galician: Updated, thanks to Xosé Calvo. * lang/serbian: Updated, thanks to Mihailo Stefanovic (mikis). 2005-01-20 Michael Keck * libraries/tooltip.js: new JS library for tooltips (hints) * libraries/common.lib.php: img tag modified for mouseover / mouseout (show/hide tooltip) * header.inc.php: needed div-container for tooltips * footer.inc.php: linking to js-file tooltip.js * themes/.../theme_right.css.php: tooltip class * querywindow.php / tbl_query_box.php: resizing the querywindow if it to small * themes/.../layout.inc.php: increased QueryWindowHeight / QueryWindowWidth * themes/.../theme_right.css.php: new class for disabled (not available) text / values / messages * libraries/tooltip.js: removed wrong typos (sorry) 2005-01-20 Alexander M. Turek * server_engines.php, server_links.inc.php: Use Michael's new icon for storage engines. * main.php: Added link to storage engines sub-page. 2005-01-18 Marc Delisle * sql.php, libraries/common.lib.php, /display_tbl.lib.php, /functions.js, lang/*.php: bug #1084820: ask a confirmation when a user wants to reach the End of rows, and count the exact number of rows to go to the real end TODO: page number selector * common.lib.php: PMA_showHint(): now the lightbulb is clickable, to reveal the full message for browsers who truncate it, thanks to Alexander for the suggestion 2005-01-18 Alexander M. Turek * server_engines.php, server_links.php libraries/storage_engines.lib.php: - Emulation for < MySQL 4.1.2; - BerkeleyDB version information. * tbl_properties.inc.php, tbl_properties_operations.php, libraries/storage_engines.lib.php: Auto-generated engine selection dropdown. * header.inc.php, libraries/common.lib.php: Finger pointer for lightbulbs. 2005-01-17 Michael Keck * libraries/common.lib.php: modified function for Add a link by MySQL-Error #1062 - Duplicate entry (feature request #1036254) 2005-01-17 Michal Čihař * lang/czech: Fix typos (translation #1103785). 2005-01-17 Alexander M. Turek * server_engines.php, lang/*.inc.php: Nice output for some MyISAM parameters. 2005-01-16 Marc Delisle * libraries/common.lib.php: bug #1103201, wrong treatment of MySQL error #1060 in the logic for error #1062 2005-01-15 Alexander M. Turek * server_engines.php, server_links.inc.php, lang/*.inc.php, libraries/storage_engines.php: Detailed storage engines status information. 2005-01-12 Alexander M. Turek * tbl_properties_table_info.inc.php: Basic view detection. * tbl_properties_structure.php: Disabled table-specific interface elements for views. 2005-01-11 Alexander M. Turek * libraries/relation.lib.php: - Removed redundant code; - Fixed some comments. * tbl_properties_structure.php: Corrected TH numbering. * db_details_structure.php: Small design glitch with "in use" tables. * db_details_structure.php, mult_submits.inc.php, lang/*.inc.php: - Views are now displayed correctly within the table list; - Added ability to drop views from the db structure page. TODO: It is not yet possible to drop a view from the table sub pages. 2005-01-11 Marc Delisle * libraries/dbi/mysqli.dbi.lib.php: bug #1076213, headers sent on invalid login 2005-01-10 Michal Čihař * lang/czech: Fix typo (translation #1099459). 2005-01-10 Olivier Mueller * README: copyright, we're in 2005 2005-01-09 Marc Delisle * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/catalan update, thanks to Xavier Navarro (xavin). * lang/japanese: updated, thanks to Tadashi Jokagi (elf2000) * lang/dutch: Updates, thanks to Ivo Teel. * lang/indonesian: Update thanks to Rachim Tamsjadi - tamsy. * lang/galician: Updated, thanks to Xosé Calvo. * lang/spanish: Updated, thanks to Daniel Hinostroza (hinostroza). ### 2.6.1-rc2 released 2005-01-07 Marc Delisle * tbl_addfield.php: bug #1082680, undefined $field_charset when adding a FLOAT field in MySQL 4.1.x 2005-01-07 Michal Čihař * Documentation.html, tbl_change.php, tbl_properties.inc.php, libraries/functions.js, libraries/tbl_change.js, libraries/keyhandler.js: Use Option key for Safari for moving (bug #1094137), move key handler function to separate file so we have only one, make movement work correctly in vertical display of properties. * libraries/common.lib.php: Fix timestamp in uva condition with MySQL 4.1 (bug #1097593). 2005-01-06 Marc Delisle * tbl_change.php: removed old PHP3-workaround that caused problems with field names like '000' 2005-01-05 Michal Čihař * tbl_properties_operations.php: Fix changning table parameters if it has no auto increment (bug #1096246). 2005-01-04 Alexander M. Turek * lang/german-*.inc.php: - Updates and small corrections; - Synchronized translation with the German MySQL documentation. 2005-01-03 Michal Čihař * export.php: Use standardised mime types and use content encoding for gzip/bzip2. I hope this will fix double gzip compression as in bug #1094649. 2005-01-01 Michal Čihař * tbl_alter.php: Don't try to set collation for non text fields (bug #1094109). * sql.php: Do not forget reloading when launching multiple queries (bug #1090818). 2004-12-30 Marc Delisle * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). * lang/norwegian: Update, thanks to Sven-Erik Andersen * lang/latvian: Updated, thanks to Sandis Jerics (saaa2002). 2004-12-30 Michal Čihař * libraries/fpdf/ufpdf.php: Fix some warnings. 2004-12-29 Michal Čihař * libraries/export/sql.php: Fix typo. * server_databases.php: Use same sort order as in left frame (bug #1087244), allow sorting even if not showing stats. * pdf_schema.php, libraries/fpdf/fpdf.php, libraries/fpdf/ufpdf.php, libraries/fpdf/font/FreeSans*: Added support for PDF output in utf-8, uses UFPDF class from http://www.acko.net/node/56. NOTE: We now have a bit modified FPDF class. (bug #1046051) * Documentation.html: Added info about UFPDF library. * lang/czech, lang/english: Improved some texts, also bug #1009667. 2004-12-28 Michal Čihař * libraries/tbl_move_copy.php: Fix constraints copying (bug #1085900). * config.inc.php, lang/*, libraries/common.lib.php, libraries/config_import.lib.php, libraries/display_export.lib.php, libraries/export/sql.php: Support for selecting SQL export compatibility (RFE #1060040). * libraries/tbl_change.js: Faster navigation in calendar (RFE #1090315). * mult_submits.inc.php, tbl_row_delete.php: Fix % escaping (bug #1082954). * read_dump.php: Fix database name extraction from use statement (bug #1084777). * css/phpmyadmin.css.php, libraries/common.lib.php: Disabled theme manager still allows to select theme in configuration (bug #1084712). * tbl_replace.php: Remove unused code. * main.php, lang/*, libraries/string.lib.php: Added warnings about mbstring - one to disable function overloading and one for requesting mbstring for multibyte charsets (bugs #1063149 and #1063821). * tbl_change.php, tbl_replace.php, lang/*, libraries/common.lib.php: Support for editing next entry (when numeric primary key) (RFE #1074906). 2004-12-26 Marc Delisle * libraries/database_interface.lib.php: bug #1085647, wrong parameters for strpos(), thanks to Meithar - meithar * libraries/select_server.lib.php, bug #1073056, unable to submit selected server, thanks to jamaz - jamaz * tbl_change.php: bug #1090608, undefined variable, thanks to peterinsb * scripts/upgrade_tables_mysql_4_1_2+.sql: bug #1084426, misleading comments * tbl_create.php: bug #1085494, illegal length value for LONGTEXT, thanks to mjec 2004-12-16 Marc Delisle * libraries/blowfish.php: bug #1085997, undefined variables, patch thanks to Chandrakumar Muthaiah - sudhach 2004-12-14 Alexander M. Turek * libraries/sqlparser.data.php: Added keywords NAMES and VIEW. 2004-12-13 Michal Čihař * libraries/tbl_change.js: Do not catch Alt and Shift keys (bug #1082315). * libraries/export/sql.php: Do not duplicate constraints when exporting multiple databases (bug #1084459). 2004-12-12 Marc Delisle * lang/japanese: updated, thanks to Tadashi Jokagi (elf2000) * lang/latvian: Updated, thanks to Sandis Jerics (saaa2002). * lang/serbian: Updated, thanks to Mihailo Stefanovic (mikis). * lang/catalan update, thanks to Xavier Navarro (xavin). * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/galician: Updated, thanks to Xosé Calvo. * lang/polish: Updated, thanks to Jakub Wilk (ubanus). * lang/chinese_traditional-*.inc.php: Updates, thanks to Siu Sun. * lang/spanish: Updated, thanks to Daniel Hinostroza (hinostroza). * lang/turkish update, thanks to boralioglu. ### 2.6.1-rc1 released 2004-12-10 Marc Delisle * libraries/transformations/text_plain__external.inc.php: security fix: no longer use the shell to execute external program * Documentation.html: mention the new need of PHP >= 4.3.0 to run external programs 2004-12-09 Marc Delisle * tbl_row_delete.php, libraries/display_tbl.lib.php: cannot drop or export multiple rows under IE6 2004-12-07 Marc Delisle * read_dump.php: security fix on $sql_localfile * lang/norwegian: Update, thanks to Sven-Erik Andersen * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. * lang/indonesian: Update thanks to Rachim Tamsjadi - tamsy. 2004-12-01 Marc Delisle * db_details_structure.php, lang/*: added hint strApproximateCount referring to FAQ 3.11 (bug #1075658) 2004-11-30 Marc Delisle * libraries/auth/cookie.auth.lib.php: Avoid displaying the "No activity" message if more than 4 times the LoginCookieValidity timeout has passed: no need to alert users the next morning (for example) that they have been inactive. 2004-11-25 Marc Delisle * libraries/auth/cookie.auth.lib.php, lang/*: "No activity" message to explain to users why they have to relogin 2004-11-25 Michal Čihař * libraries/mcrypt.lib.php: Trim result, because it can be paded with \0s. 2004-11-24 Marc Delisle * libraries/mcrypt.lib.php, /libraries/blowfish.php, libraries/auth/cookie.auth.lib.php: support of mcrypt library (blowfish) for speed improvement in auth_type cookie 2004-11-23 Marc Delisle * user_password.php: wrong generated cookie name 2004-11-21 Marc Delisle * server_privileges.php: bug #1067626, column privileges while copying user * libraries/common.lib.php: bug #1070197, not connecting if using a non-standard HTTP port (bug introduced in 2.6.0-pl3) 2004-11-19 Garvin Hicking * libraries/bookmark.lib.php, left.php: Massively speed up table display for left frame, if PMA infrastructure is used. Use native PHP function for indenting. * libraries/mysql_charsets.lib.php: Use a static array cache to speed up returning the same collation information. 2004-11-19 Marc Delisle * libraries/display_tbl.lib.php: we have the PMA_get_indexes() function, let's use it! * tbl_indexes.php: bug #1068994, undefined variable * libraries/dbg/profiling.php: bug #1068318, call-time pass-by-reference 2004-11-16 Michal Čihař * left.php: Possible undefined index (bug #1067199). * Documentation.html: Warn about Excel export problems in documentation (bug #1063082). 2004-11-14 Marc Delisle * tbl_relation.php: bug #1050437, intercept constraint failure and do not offer to add an InnoDB foreign key if the field does not have a key 2004-11-13 Marc Delisle * server_privileges.php: bug #1056706: table specific privs for a db containing an escaped wildcard character * libraries/display_tbl.lib.php: bug #1065688: display the Full text link on the results for PROCEDURE ANALYSE 2004-11-11 Michal Čihař * tbl_properties_operations.php: Allow InnoDB text to be included in user comment. 2004-11-09 Michal Čihař * browse_foreigners.php, server_binlog.php: Truncate text according to text length and not byte count. 2004-11-07 Alexander M. Turek * Documentation.html, README: Updated credits. 2004-11-07 Marc Delisle * mult_submits.inc.php: bug #1054720, multi-row delete 2004-11-06 Michael Keck * queryframe.php: bug #1046434 (Light mode does not work) 2004-11-06 Marc Delisle * libraries/common.lib.php: put sanitize logic in PMA_sanitize() * sql.php: sanitize confirm page * db_details_structure.php: bug #1049553, undefined $db_collation 2004-11-05 Marc Delisle * Documentation.html: new controluser behavior starting from MySQL 4.1.2 2004-11-04 Marc Delisle * libraries/common.lib.php, tbl_replace.php, sql.php, read_dump.php, server_privileges.php: now PMA_showMessage() sanitizes the message to defeat XSS attacks. Calling scripts use special tags like [br], [i], [/i], [b], [/b] in the message. * main.php: bug #1058692, call-time pass-by-reference error * sql.php, libraries/sqlparser.lib.php: bug #1054590, handling of OFFSET 2004-11-10 Garvin Hicking * config.inc.php: Reverted commenting out of QueryWindowWidth/Height settings. Those can be overriden by a themes layout.inc.php, but not neccessarily so. 2004-11-03 Michal Čihař * libraries/common.lib.php: More robust PmaAbsoluteUri detection. * libraries/sqlparser.lib.php: Escape html special chars in parser bugs. * libraries/common.lib.php: HTTP_HOST might be unset (bug #1053310). 2004-11-02 Michal Čihař * tbl_indexes.php: Fix index editing. * sql.php: Decode table name. * lang/czech: Updated. 2004-11-09 Garvin Hicking * libraries/display_tbl.lib.php, libraries/common.lib.php, browse_foreigners.php: RFE #925817 - Abstracted page selector to its own function, now create sloped pagination to easily jump to any wanted page. * read_dump.php: RFE #1053039, show filename of uploaded SQL file * sql.php, tbl_indexes.php, libraries/tbl_indexes.lib.php, lang/*: Added checks for common problems with table indices. Serves as a stub for future checks, currently implemented are the ones mentioned in RFE #1044677. The check can be performed on multiple tables by using "check table" on selected tables in DB structure. 2004-11-02 Marc Delisle * server_privileges.php: MySQL 4.1.x compatibility for list of initials 2004-11-01 Marc Delisle * main.php: for MySQL 4.1.2+ a non-privileged user can do a simple SHOW GRANTS to fetch current privileges, so we no longer need the control user for this check 2004-11-01 Michal Čihař * libraries/common.lib.php: Comparsion is == and not = (bug #1054758). 2004-10-29 Marc Delisle * server_privileges.php (top index): MySQLi compatibility, use PMA_convert_using() in case of non-latin1 user table, and fix bug #1054467 (in case of BINARY User field) * header.inc.php: bug #1053310, undefined index under OmniSecure server * tbl_relation.php: bug #1050424, not positionned on current db * tbl_alter.php: bug #1054756, duplicate top menu * lang/english: bug #1056724, typo 2004-10-28 Alexander M. Turek * user_password.php, lang/*.inc.php: Allow usage of old password hashing function. 2004-10-27 Alexander M. Turek * config.inc.php, libraries/config_import.lib.php, libraries/sqlparser.data.php: Added function OLD_PASSWORD(). 2004-10-26 Alexander M. Turek * libraries/sqlparser.data.php: Added OFFSET. 2004-10-25 Michal Čihař * libraries/common.lib.php: Fix URI detection in case REQUEST_URI contains full URI (patch #1044123). * tbl_properties_structure.php, libraries/display_tbl.lib.php: Fix typo that broke multi submits for MSIE (bug #1052674). 2004-10-24 Michael Keck * config.inc.php, themes/*/layout.inc.php: bug #1050666 - Query window too small darkblue/orange theme 2004-10-23 Marc Delisle * server_privileges.php: top index for user initials 2004-10-22 Alexander M. Turek * lang/english-*.inc.php: Grammar fix. 2004-10-22 Michal Čihař * db_details_structure.php: Use "Structure" instead of "Properties" for link to table structure. * db_operations.php, lang/*: We switch to database here. not table. * lang/*: strProperties is not used anywhere now. * config.inc.php: Mention db_operations.php possibility. * libraries/transformations/text_plain__external.inc.php: Unless admin specifies there programs to use, it does nothing now. 2004-10-21 Marc Delisle * tbl_query_box.php: bug 1050691, missing parameters 2004-10-21 Michael Keck * libraries/common.lib.php: feature request #1036254 Add a link by MySQL-Error #1062 - Duplicate entry 2004-10-21 Michal Čihař * [too many files to mention]: Cleanup of message displaying and navigation reloading. Messages are now displayed bellow tabs (RFE #1005511), navigation is reloaded once in header (I'm not sure whether I choose correct version of reload code, we have several diferent, but it seems to work well). * tbl_properties_structure.php, libraries/common.lib.php, libraries/display_tbl.lib.php: New function PMA_buttonOrImage to display button or image to submit form and not to duplicate code on all places. * tbl_addfield.php: Display tabs. * mult_submits.inc.php, tbl_properties_structure.php: Allow index creating on multiple fields (RFE #990136). * db_operations.php: Duplicate create new table dialog (see RFE #808029). * main.php: Don't display server choice here, if also in left frame (RFE #984153). * libraries/common.lib.php: Fix navigation reloading. * server_databases.php: Show box for creating database here (RFE #869814). 2004-10-20 Marc Delisle * libraries/common.lib.php: there was already a tip icon in our collection, thanks to Michael Keck 2004-10-20 Michal Čihař * lang/czech: Update. * tbl_relation.php: Backquote table name (bug #1050441). * db_details_qbe.php: Backquote table name. * libraries/display_tbl.lib.php: Comments now work for multi table selects (bug #789647). * server_processlist.php: Display executed SQL. * main.php, server_common.inc.php, server_links.inc.php, server_binlog.php, lang/*: Added support for displaying bin logs (RFE #1011770). * Documentation.html, config.inc.php, libraries/common.lib.php, libraries/config_import.lib.php, libraries/auth/config.auth.lib.php, libraries/auth/cookie.auth.lib.php: Allow simple blocking of root login (RFE #1012971), show just Access denied in case we denied it. * db_operations.php, db_details_links.php, db_details_structure.php: Separate operations from structure (RFE #808029). * tbl_move_copy.php: Remove unused PMA_myHandler(). * lang/*, libraries/tbl_move_copy.php, libraries/export/sql.php, db_operations.php, tbl_move_copy.php: Implemented database copying (RFE #996730), this forced separating code for copying tables. 2004-10-19 Marc Delisle * libraries/database_interface.lib.php: bug #1041667, correctly check the server version instead of the client API version * tbl_change.php, libraries/common.lib.php, lang/*: new function PMA_showHint($message), new $strUseTabKey, new light bulb image (temporary) * server_privileges.php: bug #916117, PMA_showHint($strEscapeWildcards) 2004-10-19 Michal Čihař * export.php: Use just \n for SQL exports (bug #1042521). * libraries/read_dump.lib.php: Set correct return value (bug #1048861). * sql.php: Fix undefined index. * libraries/sqlparser.lib.php: Return raw query in case of error (bug #1048826). * main.php, queryframe.php: Handle correctly situation with no default server (bug #1049107). * tbl_create.php, libraries/common.lib.php: 0 as field name causes problems (bug #1042235). * read_dump.php, server_privileges.php, server_status.php, sql.php: Work better in ANSI mode (bug #816858). * lang/czech: Reordered some words. * libraries/select_server.lib.php: Clickable active server in left frame (RFE # 1044678). * db_details_structure.php, tbl_move_copy.php, libraries/common.lib.php: Fix left frame reloading after dropping table (bug #1034531). * config.inc.php, libraries/config_import.lib.php: Offer UNIX_TIMESTAMP also for numeric fields. * tbl_replace.php: UNIX_TIMESTAMP can take optional parameter (bug #1039193). * server_privileges.php: Make non-js checkall work also for adding new user (bug #1028055). * libraries/zip.lib.php: Drop unneed part of header which causes troubles to some programs (bug #1037737). * index.php: Add frame spacing (RFE #1036013). * libraries/db_table_exists.lib.php: Allow work on temporary tables (bug #864984). 2004-10-17 Marc Delisle * lang/turkish update, thanks to boralioglu. * lang/estonian: Update thanks to Alvar Soome - finsoft. 2004-10-16 Marc Delisle * libraries/dbi/mysqli.dbi.lib.php: support for compressed protocol and CLIENT_LOCAL_FILES in mysqli 2004-10-15 Marc Delisle * pdf_schema.php: new way to define font path, needed with the new fpdf library; also now output inline, I find it faster this way, please tell me if you prefer the old dialog method and why. * tbl_change.php: bug #1038401, tabbing from value to value * sql.php: detect this case: SELECT DISTINCT x AS foo, y AS bar FROM sometable and count rows correctly (in MySQL 3), thanks to Matthias Pigulla (mp@webfactory.de) * server_privileges.php: cosmetic: title for Edit privileges * lang/galician: Updated, thanks to Xosé Calvo. * lang/italian: Updates, thanks to Pietro Danesi * lang/norwegian: Update, thanks to Sven-Erik Andersen 2004-10-13 Michal Čihař * libraries/fpdf/fpdf.php: Updated to 1.52. 2004-10-13 Alexander M. Turek * Documentation.html: Mike Beck's e-mail address has changed. 2004-10-13 Michal Čihař * lang/sync_lang.sh: Do not overwrite utf-8 files in some cases. * lang/czech: Fix some translations. * libraries/transformations/text_plain__external.inc.php: Handle better backslash. * themes/*/img/*.gif: Remove unused gif images. 2004-10-12 Alexander M. Turek * db_search.php, tbl_select.php, libraries/database_interface.lib.php: - bug #1033388 (Illegal mix of collations for converted strings), - don't convert if column charset and connection charset match. * main.php, libraries/select_lang.lib.php, libraries/auth/cookie.auth.lib.php: Automatically select Traditional Chinese for users with a Hong Kong locale (zh-hk), as discussed in the translations tracker (#1036528). * lang/sync_lang.sh: Base charset for German is now UTF-8. * lang/german-*.inc.php: Updates. 2004-10-12 Michal Čihař * sql.php: Don't try to require sql.php with parameters, rather redirect to it. * libraries/transformations.lib.php: Strip slashes to behave like documentation says. * libraries/transformations/text_plain__external.inc.php: Escape special shell chars to avoid their interpretation (bug #1044864). 2004-10-11 Marc Delisle * Documentation.html: typos and XHTML validity, thanks to Cedric Corazza * libraries/export/sql.php: bug #1039639: under mysqli, some field types were wrongly exported as binary * libraries/sqlparser.lib.php, /display_tbl.lib.php: bug #967610, double column sort with JOIN 2004-10-11 Michal Čihař * tbl_query_box.php: Don't try to replace %t and %f when table name is empty. * libraries/export/sql.php: Convert end of line chars we get from MySQL (bug #1042521). 2004-10-08 Garvin Hicking * lots of files: Adjusted superfluous spaces, added more CSS-ID attributes for better themeability. 2004-10-04 Michal Čihař * tbl_query_box.php: Reenabled %f substitution. 2004-10-02 Marc Delisle * tbl_alter.php: field structure changes not applied (CVS version only) * export.php: bug #1038804, insufficient space to save 2004-09-30 Marc Delisle * tbl_addfield.php: bug #1037744 (CVS version only): cannot add a field * tbl_create.php: cannot create a new table (CVS version only) 2004-09-29 Marc Delisle * sql.php, libraries/common.lib.php: bug #1036678, incorrect appending of LIMIT to queries, and bug #1037004, UPDATE statement not showing * tbl_properties_operations.php: bug #1035524, cannot add comments to table 2004-09-29 Michal Čihař * tbl_addfield.php, tbl_create.php, tbl_properties.inc.php, lang/*: Better wording when adding fields (bug #991096). * tbl_query_box.php, lang/*: Not translated text (bug #1010656). * themes.php, lang/*: Not translated text (bug #1016610). * tbl_properties_structure.php: Use also $strAddFields (as suggested by Marc). 2004-09-28 Alexander M. Turek * libraries/dbi/mysql.dbi.lib.php: Compatibility fix for php < 4.3 (bug #1033360), thanks to Claude Theroux. * lang/chinese_traditional-*.inc.php: Updates, thanks to Siu Sun. * lang/dutch-*.inc.php: Updates, thanks to Ivo Teel. * lang/persian-*.inc.php: Added missing $timespanfmt variable. 2004-09-27 Marc Delisle ### 2.6.0 released 2004-09-26 Marc Delisle * read_dump.php: improvements in detection and reload * lang/danish: Updated, thanks to AlleyKat - dk_alleykat. 2004-09-25 Marc Delisle * lang/norwegian: Update, thanks to Sven-Erik Andersen - sven-erik. * lang/indonesian: Update thanks to Rachim Tamsjadi - tamsy. * lang/spanish: Updated, thanks to Daniel Hinostroza (hinostroza). * lang/catalan update, thanks to Xavier Navarro (xavin). * lang/polish: Updated, thanks to Jakub Wilk (ubanus). * lang/swedish: Updated, thanks to Björn T. Hallberg (bth). * lang/serbian: Updated, thanks to Mihailo Stefanovic (mikis). 2004-09-24 Marc Delisle * sql.php: following the fix for bug #978930, the added LIMIT was not displayed anymore * read_dump.php: bug #1033133, left frame not reloaded after dump read * db_datadict.php: bug #1034299, error in SHOW KEYS for data dict * read_dump.php: bug #1034216 open_basedir and file upload, thanks to Dominique Rousseau - domi 2004-09-24 Michal Čihař * libraries/export/sql.php: Fixed export of '0' string (bug #1033869). 2004-09-23 Marc Delisle * all themes: item_ltr.png and item_rtl.png: new solid arrow that looks better, thanks to Efim Shuvikov 2004-09-23 Michal Čihař * themes.php, css/phpmyadmin.css.php, libraries/common.lib.php: Do not prepend $cfg['ThemePath'] with another './'. 2004-09-22 Alexander M. Turek * config.inc.php, libraries/config_import.lib.php: Added "./" to the default value of $cfg['ThemePath']. Thanks to Donny Simonton for pointing this out. * lang/chinese_simplified-*.inc.php: Updates, thanks to Simon (simon2san). * lang/italian-*.inc.php: Updates, thanks to Pietro Danesi and "Vincenzo". * lang/persian-*.inc.php: Updates, thanks to Parham Ghaffarian. 2004-09-22 Marc Delisle * tbl_query_box.php, read_dump.php: bug #1032066: when no db was selected from the left panel, the query window's Import Files had no submit button; also, read_dump always tried a PMA_select_db($db) even if $db was empty 2004-09-22 Michal Čihař * lang/czech: Update. * lang/sync_lang.sh: Default to iconv, as it doesn't break some translations as recode does. * lang/japanese-euc.inc.php: Don't allow recoding for this one. 2004-09-22 Alexander M. Turek * lang/turkish-*.inc.php: Update, thanks to boralioglu. * lang/sync_lang.sh: Switched turkish base charset to UTF-8. 2004-09-21 Marc Delisle * libraries/dbi/mysql.dbi.lib.php: typo, thanks to Matthias Pigulla ### 2.6.0-rc3 released 2004-09-21 Alexander M. Turek * db_details.php, read_dump.php, tbl_query_box.php: Allow import of non-UTF-8 SQL dumps. Thanks to Marc for the initial patch. FIXME: The current solution breaks the display of the executed queries. * lang/*.inc.php, libraries/mysql_charsets.lib.php: Made PMA_getCollationDescr() recognize the new Persian collations that will be included in MySQL 4.1.5. 2004-09-20 Marc Delisle * read_dump.php, libraries/read_dump.lib.php: bug #1030644, error importing when last table exp