Reverted some obfuscated RegExes. Nijel, as you where working on that: I removed the bugfixes you threw in for my faulty code because there where some issue left (for me):
The lines $re0 = '@(^|(\\\\\\\\)+|[^\\\\])'; // non-escaped wildcards $re1 = '@(^|[^\])(\\\)+'; // escaped wildcards as they currently where made no sense to me, because the single [^\] should be replaced to [^\\\\] as well, doesn't it? To not seriously break more stuff I decided to revert to the previous mechanism here. I will do more serious tests the next days and will actually work with my PMA again and I pay close attention to see if there are any issues left. I also searched through the code to see if the setting of the array points from former while() constructs was in any way used [current(), next(), prev(), key(), end(), each()] but did find none.
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -5,6 +5,17 @@ phpMyAdmin - Changelog
|
|||||||
$Id$
|
$Id$
|
||||||
$Source$
|
$Source$
|
||||||
|
|
||||||
|
2003-11-24 Garvin Hicking <phpmyadminismyaeroplane@supergarv.de>
|
||||||
|
* db_details_qbe.php, left.php, main.php, pdf_pages.php, server_collations.php,
|
||||||
|
tbl_change.php, tbl_indexes.php, tbl_move_copy.php, tbl_relation.php,
|
||||||
|
tbl_replace.php, libraries/common.lib.php, libraries/db_config.lib.php,
|
||||||
|
libraries/display_tbl.lib.php, libraries/grab_globals.lib.php,
|
||||||
|
libraries/mysql_charsets.lib.php, libraries/select_lang.lib.php:
|
||||||
|
|
||||||
|
Reverted some obfuscated regular expressions to their working eregi-versions
|
||||||
|
to not break stuff. Removed unneccessary reset() calls, replaced some more
|
||||||
|
while(list()) constructs.
|
||||||
|
|
||||||
2003-11-24 Alexander M. Turek <bloodsugarsexmagik@derrabus.de>
|
2003-11-24 Alexander M. Turek <bloodsugarsexmagik@derrabus.de>
|
||||||
* lang/german-*.inc.php: Updates.
|
* lang/german-*.inc.php: Updates.
|
||||||
* lang/english-*.inc.php: Sortation.
|
* lang/english-*.inc.php: Sortation.
|
||||||
|
@@ -862,7 +862,6 @@ if (isset($Field) && count($Field) > 0) {
|
|||||||
} else {
|
} else {
|
||||||
reset($col_cand);
|
reset($col_cand);
|
||||||
$master = current($col_cand); // Only one single candidate
|
$master = current($col_cand); // Only one single candidate
|
||||||
//
|
|
||||||
}
|
}
|
||||||
} // end if (exactly one where clause)
|
} // end if (exactly one where clause)
|
||||||
|
|
||||||
|
1
left.php
1
left.php
@@ -484,7 +484,6 @@ if ($num_dbs > 1) {
|
|||||||
if (!empty($cfg['LeftFrameTableSeparator'])) {
|
if (!empty($cfg['LeftFrameTableSeparator'])) {
|
||||||
$_table = explode($cfg['LeftFrameTableSeparator'], str_replace('\'', '\\\'',$table));
|
$_table = explode($cfg['LeftFrameTableSeparator'], str_replace('\'', '\\\'',$table));
|
||||||
if (is_array($_table)) {
|
if (is_array($_table)) {
|
||||||
reset($_table);
|
|
||||||
foreach($_table AS $key => $val) {
|
foreach($_table AS $key => $val) {
|
||||||
if ($val == '') {
|
if ($val == '') {
|
||||||
$_table[$key] = '__protected__';
|
$_table[$key] = '__protected__';
|
||||||
|
@@ -651,11 +651,11 @@ h1 {font-family: sans-serif; font-size: large; font-weight: bold}
|
|||||||
// loic1: fixed bad regexp
|
// loic1: fixed bad regexp
|
||||||
// TODO: db names may contain characters
|
// TODO: db names may contain characters
|
||||||
// that are regexp instructions
|
// that are regexp instructions
|
||||||
$re = '@(^|(\\\\\\\\)+|[^\])';
|
$re = '(^|(\\\\\\\\)+|[^\])';
|
||||||
$uva_regex = preg_replace($re . '%@', '\\1.*', preg_replace($re . '_@', '\\1.{1}', $uva_matchpattern));
|
$uva_regex = ereg_replace($re . '%', '\\1.*', ereg_replace($re . '_', '\\1.{1}', $uva_matchpattern));
|
||||||
// Fixed db name matching
|
// Fixed db name matching
|
||||||
// 2000-08-28 -- Benjamin Gandon
|
// 2000-08-28 -- Benjamin Gandon
|
||||||
if (preg_match('@^' . $uva_regex . '$@', $uva_db)) {
|
if (ereg('^' . $uva_regex . '$', $uva_db)) {
|
||||||
$dblist[] = $uva_db;
|
$dblist[] = $uva_db;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1104,7 +1104,7 @@ h1 {font-family: sans-serif; font-size: large; font-weight: bold}
|
|||||||
// We don't want more than one asterisk inside our 'only_db'.
|
// We don't want more than one asterisk inside our 'only_db'.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ($is_show_dbs && preg_match('@(^|[^\\\\])(_|%)@', $dblist[$i])) {
|
if ($is_show_dbs && ereg('(^|[^\])(_|%)', $dblist[$i])) {
|
||||||
$local_query = 'SHOW DATABASES LIKE \'' . $dblist[$i] . '\'';
|
$local_query = 'SHOW DATABASES LIKE \'' . $dblist[$i] . '\'';
|
||||||
$rs = PMA_mysql_query($local_query, $dbh);
|
$rs = PMA_mysql_query($local_query, $dbh);
|
||||||
// "SHOW DATABASES" statement is disabled
|
// "SHOW DATABASES" statement is disabled
|
||||||
|
@@ -25,7 +25,7 @@ if (!defined('PMA_DB_CONFIG_LIB_INCLUDED')) {
|
|||||||
*/
|
*/
|
||||||
function obj2xml($v, $indent = '') {
|
function obj2xml($v, $indent = '') {
|
||||||
$attr = '';
|
$attr = '';
|
||||||
while (list($key, $val) = each($v)) {
|
foreach($v AS $key => $val) {
|
||||||
if (is_string($key) && ($key == '__attr')) {
|
if (is_string($key) && ($key == '__attr')) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@@ -985,8 +985,7 @@ if (!defined('PMA_DISPLAY_TBL_LIB_INCLUDED')) {
|
|||||||
echo ' <td> </td>' . "\n";
|
echo ' <td> </td>' . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
reset($vertical_display['desc']);
|
foreach($vertical_display['desc'] AS $key => $val) {
|
||||||
while (list($key, $val) = each($vertical_display['desc'])) {
|
|
||||||
echo $val;
|
echo $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1544,8 +1543,6 @@ if (!defined('PMA_DISPLAY_TBL_LIB_INCLUDED')) {
|
|||||||
{
|
{
|
||||||
global $vertical_display, $repeat_cells;
|
global $vertical_display, $repeat_cells;
|
||||||
|
|
||||||
reset($vertical_display);
|
|
||||||
|
|
||||||
// Displays "multi row delete" link at top if required
|
// Displays "multi row delete" link at top if required
|
||||||
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
|
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
|
||||||
echo '<tr>' . "\n";
|
echo '<tr>' . "\n";
|
||||||
|
@@ -31,7 +31,6 @@ if (!defined('PMA_GRAB_GLOBALS_INCLUDED')) {
|
|||||||
$target[$key] = $value;
|
$target[$key] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reset($array);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -36,14 +36,12 @@ if (!defined('PMA_MYSQL_CHARSETS_LIB_INCLUDED')){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reset($mysql_collations);
|
|
||||||
$mysql_collations_count = 0;
|
$mysql_collations_count = 0;
|
||||||
while (list($key, $value) = each($mysql_collations)) {
|
foreach($mysql_collations AS $key => $value) {
|
||||||
$mysql_collations_count += count($mysql_collations[$key]);
|
$mysql_collations_count += count($mysql_collations[$key]);
|
||||||
sort($mysql_collations[$key], SORT_STRING);
|
sort($mysql_collations[$key], SORT_STRING);
|
||||||
reset($mysql_collations[$key]);
|
reset($mysql_collations[$key]);
|
||||||
}
|
}
|
||||||
reset($mysql_collations);
|
|
||||||
|
|
||||||
@mysql_free_result($res);
|
@mysql_free_result($res);
|
||||||
unset($res);
|
unset($res);
|
||||||
|
@@ -174,8 +174,8 @@ if (!defined('PMA_SELECT_LANG_LIB_INCLUDED')) {
|
|||||||
foreach($available_languages AS $key => $value) {
|
foreach($available_languages AS $key => $value) {
|
||||||
// $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable,
|
// $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable,
|
||||||
// 2 for the 'HTTP_USER_AGENT' one
|
// 2 for the 'HTTP_USER_AGENT' one
|
||||||
if (($envType == 1 && preg_match('@^(' . $value[0] . ')(;q=[0-9]\\.[0-9])?$@i', $str))
|
if (($envType == 1 && eregi('^(' . $value[0] . ')(;q=[0-9]\\.[0-9])?$', $str))
|
||||||
|| ($envType == 2 && preg_match('@(\(|\[|;[[:space:]])(' . $value[0] . ')(;|\]|\))@i', $str))) {
|
|| ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $value[0] . ')(;|\]|\))', $str))) {
|
||||||
$lang = $key;
|
$lang = $key;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
22
main.php
22
main.php
@@ -209,13 +209,13 @@ if ($server > 0) {
|
|||||||
$local_query = 'SELECT DISTINCT Db FROM mysql.db WHERE Create_priv = \'Y\' AND User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\'';
|
$local_query = 'SELECT DISTINCT Db FROM mysql.db WHERE Create_priv = \'Y\' AND User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\'';
|
||||||
$rs_usr = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE);
|
$rs_usr = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE);
|
||||||
if ($rs_usr) {
|
if ($rs_usr) {
|
||||||
$re0 = '@(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards
|
$re0 = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards
|
||||||
$re1 = '@(^|[^\])(\\\)+'; // escaped wildcards
|
$re1 = '(^|[^\])(\\\)+'; // escaped wildcards
|
||||||
while ($row = PMA_mysql_fetch_array($rs_usr)) {
|
while ($row = PMA_mysql_fetch_array($rs_usr)) {
|
||||||
if (preg_match($re0 . '(%|_)@', $row['Db'])
|
if (ereg($re0 . '(%|_)', $row['Db'])
|
||||||
|| (!PMA_mysql_select_db(preg_replace($re1 . '(%|_)@', '\\1\\3', $row['Db']), $userlink) && @mysql_errno() != 1044)) {
|
|| (!PMA_mysql_select_db(ereg_replace($re1 . '(%|_)', '\\1\\3', $row['Db']), $userlink) && @mysql_errno() != 1044)) {
|
||||||
$db_to_create = preg_replace($re0 . '%@', '\\1...', preg_replace($re0 . '_@', '\\1?', $row['Db']));
|
$db_to_create = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $row['Db']));
|
||||||
$db_to_create = preg_replace($re1 . '(%|_)@', '\\1\\3', $db_to_create);
|
$db_to_create = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create);
|
||||||
$is_create_priv = TRUE;
|
$is_create_priv = TRUE;
|
||||||
break;
|
break;
|
||||||
} // end if
|
} // end if
|
||||||
@@ -235,8 +235,8 @@ if ($server > 0) {
|
|||||||
$rs_usr = PMA_mysql_query($local_query, $dbh);
|
$rs_usr = PMA_mysql_query($local_query, $dbh);
|
||||||
}
|
}
|
||||||
if ($rs_usr) {
|
if ($rs_usr) {
|
||||||
$re0 = '@(^|(\\\\\\\\)+|[^\\\\])'; // non-escaped wildcards
|
$re0 = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards
|
||||||
$re1 = '@(^|[^\])(\\\)+'; // escaped wildcards
|
$re1 = '(^|[^\])(\\\)+'; // escaped wildcards
|
||||||
while ($row = PMA_mysql_fetch_row($rs_usr)) {
|
while ($row = PMA_mysql_fetch_row($rs_usr)) {
|
||||||
$show_grants_dbname = substr($row[0], strpos($row[0], ' ON ') + 4,(strpos($row[0], '.', strpos($row[0], ' ON ')) - strpos($row[0], ' ON ') - 4));
|
$show_grants_dbname = substr($row[0], strpos($row[0], ' ON ') + 4,(strpos($row[0], '.', strpos($row[0], ' ON ')) - strpos($row[0], ' ON ') - 4));
|
||||||
$show_grants_str = substr($row[0],6,(strpos($row[0],' ON ')-6));
|
$show_grants_str = substr($row[0],6,(strpos($row[0],' ON ')-6));
|
||||||
@@ -246,9 +246,9 @@ if ($server > 0) {
|
|||||||
$db_to_create = '';
|
$db_to_create = '';
|
||||||
break;
|
break;
|
||||||
} // end if
|
} // end if
|
||||||
else if (preg_match($re0 . '%|_@', $show_grants_dbname) || !PMA_mysql_select_db($show_grants_dbname, $userlink) && @mysql_errno() != 1044) {
|
else if (preg_match($re0 . '%|_', $show_grants_dbname) || !PMA_mysql_select_db($show_grants_dbname, $userlink) && @mysql_errno() != 1044) {
|
||||||
$db_to_create = preg_replace($re0 . '%@', '\\1...', preg_replace($re0 . '_@', '\\1?', $show_grants_dbname));
|
$db_to_create = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $show_grants_dbname));
|
||||||
$db_to_create = preg_replace($re1 . '(%|_)@', '\\1\\3', $db_to_create);
|
$db_to_create = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create);
|
||||||
$is_create_priv = TRUE;
|
$is_create_priv = TRUE;
|
||||||
break;
|
break;
|
||||||
} // end elseif
|
} // end elseif
|
||||||
|
@@ -295,7 +295,6 @@ $i = 0;
|
|||||||
while ($temp_sh_page = @PMA_mysql_fetch_array($page_rs)) {
|
while ($temp_sh_page = @PMA_mysql_fetch_array($page_rs)) {
|
||||||
$array_sh_page[] = $temp_sh_page;
|
$array_sh_page[] = $temp_sh_page;
|
||||||
}
|
}
|
||||||
reset($array_sh_page);
|
|
||||||
|
|
||||||
// garvin: Display WYSIWYG-PDF parts?
|
// garvin: Display WYSIWYG-PDF parts?
|
||||||
if ($cfg['WYSIWYG-PDF']) {
|
if ($cfg['WYSIWYG-PDF']) {
|
||||||
@@ -384,7 +383,6 @@ function resetDrag() {
|
|||||||
echo '>';
|
echo '>';
|
||||||
echo "\n" . ' <td>'
|
echo "\n" . ' <td>'
|
||||||
. "\n" . ' <select name="c_table_' . $i . '[name]">';
|
. "\n" . ' <select name="c_table_' . $i . '[name]">';
|
||||||
reset($selectboxall);
|
|
||||||
foreach($selectboxall AS $key => $value) {
|
foreach($selectboxall AS $key => $value) {
|
||||||
echo "\n" . ' <option value="' . $value . '"';
|
echo "\n" . ' <option value="' . $value . '"';
|
||||||
if ($value == $sh_page['table_name']) {
|
if ($value == $sh_page['table_name']) {
|
||||||
|
@@ -55,8 +55,6 @@ echo '<table border="0">' . "\n"
|
|||||||
. ' </th>' . "\n"
|
. ' </th>' . "\n"
|
||||||
. ' </tr>' . "\n";
|
. ' </tr>' . "\n";
|
||||||
|
|
||||||
reset($mysql_charsets);
|
|
||||||
reset($mysql_collations);
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$table_row_count = count($mysql_charsets) + $mysql_collations_count;
|
$table_row_count = count($mysql_charsets) + $mysql_collations_count;
|
||||||
|
|
||||||
|
@@ -220,7 +220,8 @@ for ($i = 0; $i < $fields_cnt; $i++) {
|
|||||||
echo "\n";
|
echo "\n";
|
||||||
|
|
||||||
$row_table_def = PMA_mysql_fetch_array($table_def);
|
$row_table_def = PMA_mysql_fetch_array($table_def);
|
||||||
$row_table_def['True_Type'] = preg_replace('@\\(.*@', '', $row_table_def['Type']);
|
$row_table_def['True_Type'] = preg_replace('@\(.*@', '', $row_table_def['Type']);
|
||||||
|
|
||||||
$field = $row_table_def['Field'];
|
$field = $row_table_def['Field'];
|
||||||
|
|
||||||
// garvin: possible workaround. If current field is numerical, do not try to
|
// garvin: possible workaround. If current field is numerical, do not try to
|
||||||
|
@@ -127,7 +127,7 @@ while ($row = PMA_mysql_fetch_array($fields_rs)) {
|
|||||||
$fields_names[] = $row['Field'];
|
$fields_names[] = $row['Field'];
|
||||||
// loic1: set or enum types: slashes single quotes inside options
|
// loic1: set or enum types: slashes single quotes inside options
|
||||||
if (preg_match('@^(set|enum)\((.+)\)$@i', $row['Type'], $tmp)) {
|
if (preg_match('@^(set|enum)\((.+)\)$@i', $row['Type'], $tmp)) {
|
||||||
$tmp[2] = substr(preg_replace('@([^,])\'\@', '\\1\\\'', ',' . $tmp[2]), 1);
|
$tmp[2] = substr(preg_replace('@([^,])\'\'@', '\\1\\\'', ',' . $tmp[2]), 1);
|
||||||
$fields_types[] = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
|
$fields_types[] = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')';
|
||||||
} else {
|
} else {
|
||||||
$fields_types[] = $row['Type'];
|
$fields_types[] = $row['Type'];
|
||||||
@@ -352,7 +352,6 @@ else if (!defined('PMA_IDX_INCLUDED')
|
|||||||
<option value="--ignore--"<?php if ('--ignore--' == $selected) echo ' selected="selected"'; ?>>
|
<option value="--ignore--"<?php if ('--ignore--' == $selected) echo ' selected="selected"'; ?>>
|
||||||
-- <?php echo $strIgnore; ?> --</option>
|
-- <?php echo $strIgnore; ?> --</option>
|
||||||
<?php
|
<?php
|
||||||
reset($fields_names);
|
|
||||||
foreach($fields_names AS $key => $val) {
|
foreach($fields_names AS $key => $val) {
|
||||||
if ($index_type != 'FULLTEXT'
|
if ($index_type != 'FULLTEXT'
|
||||||
|| preg_match('@^(varchar|text|tinytext|mediumtext|longtext)@i', $fields_types[$key])) {
|
|| preg_match('@^(varchar|text|tinytext|mediumtext|longtext)@i', $fields_types[$key])) {
|
||||||
|
@@ -57,7 +57,6 @@ global $cfgRelation;
|
|||||||
$last_id = -1;
|
$last_id = -1;
|
||||||
|
|
||||||
if ($cfgRelation[$work]) {
|
if ($cfgRelation[$work]) {
|
||||||
@reset($get_fields);
|
|
||||||
$select_parts = array();
|
$select_parts = array();
|
||||||
$row_fields = array();
|
$row_fields = array();
|
||||||
foreach($get_fields AS $nr => $get_field) {
|
foreach($get_fields AS $nr => $get_field) {
|
||||||
|
@@ -379,7 +379,6 @@ if ($col_rs && mysql_num_rows($col_rs) > 0) {
|
|||||||
echo "\n";
|
echo "\n";
|
||||||
|
|
||||||
// PMA internal relations
|
// PMA internal relations
|
||||||
reset($selectboxall);
|
|
||||||
if (isset($existrel[$myfield])) {
|
if (isset($existrel[$myfield])) {
|
||||||
$foreign_field = $existrel[$myfield]['foreign_db'] . '.'
|
$foreign_field = $existrel[$myfield]['foreign_db'] . '.'
|
||||||
. $existrel[$myfield]['foreign_table'] . '.'
|
. $existrel[$myfield]['foreign_table'] . '.'
|
||||||
|
@@ -62,7 +62,6 @@ if (isset($err_url)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Resets tables defined in the configuration file
|
// Resets tables defined in the configuration file
|
||||||
reset($fields);
|
|
||||||
if (isset($funcs)) {
|
if (isset($funcs)) {
|
||||||
reset($funcs);
|
reset($funcs);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user