diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php index a81a60a3..802f8f48 100644 --- a/adminer/edit.inc.php +++ b/adminer/edit.inc.php @@ -3,7 +3,7 @@ $where = (isset($_GET["select"]) ? (count($_POST["check"]) == 1 ? where_check($_ $update = ($where && !$_POST["clone"]); $fields = fields($_GET["edit"]); foreach ($fields as $name => $field) { - if (isset($_GET["default"]) ? $field["auto_increment"] || ereg('text|blob', $field["type"]) : !isset($field["privileges"][$update ? "update" : "insert"])) { + if ((isset($_GET["default"]) ? $field["auto_increment"] || ereg('text|blob', $field["type"]) : !isset($field["privileges"][$update ? "update" : "insert"])) || !strlen(adminer_field_name($fields, $name))) { unset($fields[$name]); } } diff --git a/adminer/select.inc.php b/adminer/select.inc.php index fab31791..196f6d26 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -18,8 +18,9 @@ $rights = array(); // privilege => 0 $columns = array(); // selectable columns unset($text_length); foreach ($fields as $key => $field) { - if (isset($field["privileges"]["select"])) { - $columns[$key] = html_entity_decode(strip_tags(adminer_field_name($fields, $key))); //! numeric $key is problematic in optionlist() + $name = adminer_field_name($fields, $key); + if (isset($field["privileges"]["select"]) && strlen($name)) { + $columns[$key] = html_entity_decode(strip_tags($name)); //! numeric $key is problematic in optionlist() if (ereg('text|blob', $field["type"])) { $text_length = (isset($_GET["text_length"]) ? $_GET["text_length"] : "100"); } @@ -304,46 +305,51 @@ if (!$columns) { echo "
"; foreach ($rows[0] as $key => $val) { - echo ' | ' . adminer_field_name($fields, $key) . ''; + $name = adminer_field_name($fields, $key); + if (strlen($name)) { + echo ' | $name"; + } } echo ($backward_keys ? " | " . lang('Relations') : "") . " |
---|---|---|---|
' . (count($select) != count($group) || information_schema($_GET["db"]) ? '' : ' ' . lang('edit') . '');
foreach ($row as $key => $val) {
- if (strlen($val) && (!isset($email_fields[$key]) || $email_fields[$key])) {
- $email_fields[$key] = is_email($val); //! filled e-mails may be contained on other pages
- }
- if (!isset($val)) {
- $val = "NULL";
- } elseif (ereg('blob|binary', $fields[$key]["type"]) && !is_utf8($val)) { //! download link may be printed even with is_utf8
- $val = '' . lang('%d byte(s)', strlen($val)) . '';
- } else {
- if (!strlen(trim($val, " \t"))) {
- $val = " ";
- } elseif (intval($text_length) > 0 && ereg('blob|text', $fields[$key]["type"])) {
- $val = nl2br(shorten_utf8($val, intval($text_length))); // usage of LEFT() would reduce traffic but complicates query
+ if (strlen(adminer_field_name($fields, $key))) {
+ if (strlen($val) && (!isset($email_fields[$key]) || $email_fields[$key])) {
+ $email_fields[$key] = is_email($val); //! filled e-mails may be contained on other pages
+ }
+ if (!isset($val)) {
+ $val = "NULL";
+ } elseif (ereg('blob|binary', $fields[$key]["type"]) && !is_utf8($val)) { //! download link may be printed even with is_utf8
+ $val = '' . lang('%d byte(s)', strlen($val)) . '';
} else {
- $val = nl2br(htmlspecialchars($val));
- if ($fields[$key]["type"] == "char") {
- $val = "$val ";
- }
- }
-
- // link related items
- $link = "";
- foreach ((array) $foreign_keys[$key] as $foreign_key) {
- if (count($foreign_keys[$key]) == 1 || count($foreign_key["source"]) == 1) {
- foreach ($foreign_key["source"] as $i => $source) {
- $link .= where_link($i, $foreign_key["target"][$i], $rows[$n][$source]);
+ if (!strlen(trim($val, " \t"))) {
+ $val = " ";
+ } elseif (intval($text_length) > 0 && ereg('blob|text', $fields[$key]["type"])) {
+ $val = nl2br(shorten_utf8($val, intval($text_length))); // usage of LEFT() would reduce traffic but complicates query
+ } else {
+ $val = nl2br(htmlspecialchars($val));
+ if ($fields[$key]["type"] == "char") {
+ $val = "$val ";
}
- $link = htmlspecialchars((strlen($foreign_key["db"]) ? preg_replace('~([?&]db=)[^&]+~', '\\1' . urlencode($foreign_key["db"]), $SELF) : $SELF) . 'select=' . urlencode($foreign_key["table"])) . $link; // InnoDB supports non-UNIQUE keys
- break;
}
+
+ // link related items
+ $link = "";
+ foreach ((array) $foreign_keys[$key] as $foreign_key) {
+ if (count($foreign_keys[$key]) == 1 || count($foreign_key["source"]) == 1) {
+ foreach ($foreign_key["source"] as $i => $source) {
+ $link .= where_link($i, $foreign_key["target"][$i], $rows[$n][$source]);
+ }
+ $link = htmlspecialchars((strlen($foreign_key["db"]) ? preg_replace('~([?&]db=)[^&]+~', '\\1' . urlencode($foreign_key["db"]), $SELF) : $SELF) . 'select=' . urlencode($foreign_key["table"])) . $link; // InnoDB supports non-UNIQUE keys
+ break;
+ }
+ }
+ $val = adminer_select_val($val, $link);
}
- $val = adminer_select_val($val, $link);
+ echo " | $val"; } - echo " | $val"; } if ($backward_keys) { echo " | ";
diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php
index ff082f32..3da889ce 100644
--- a/editor/include/adminer.inc.php
+++ b/editor/include/adminer.inc.php
@@ -108,8 +108,9 @@ function adminer_navigation($missing) {
} else {
echo " \n";
foreach ($table_status as $row) {
- if (isset($row["Engine"])) { // ignore views
- echo '' . adminer_table_name($row) . " |