]> git.joonet.de Git - adminer.git/commitdiff
Ignore tables and fields with empty name
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Tue, 21 Jul 2009 13:59:02 +0000 (13:59 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Tue, 21 Jul 2009 13:59:02 +0000 (13:59 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@861 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/edit.inc.php
adminer/select.inc.php
editor/include/adminer.inc.php
editor/lang/cs.inc.php
examples/editor-cds/index.php

index a81a60a351a1e4bd5ee2ef767526fc4c446fe893..802f8f48bb0b6d6d01bb89347b69f011babffe7c 100644 (file)
@@ -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]);
        }
 }
index fab31791cf361eeb33dcc19bfd93216ea3af9c4f..196f6d26266a6f9860fc10dab46a8c5ceaf55d80 100644 (file)
@@ -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 "<table cellspacing='0' class='nowrap'>\n";
                        echo "<thead><tr><td><input type='checkbox' id='all-page' onclick='form_check(this, /check/);'>";
                        foreach ($rows[0] as $key => $val) {
-                               echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . '">' . adminer_field_name($fields, $key) . '</a>';
+                               $name = adminer_field_name($fields, $key);
+                               if (strlen($name)) {
+                                       echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . "\">$name</a>";
+                               }
                        }
                        echo ($backward_keys ? "<th>" . lang('Relations') : "") . "</thead>\n";
                        foreach ($descriptions as $n => $row) {
                                $unique_idf = implode('&amp;', unique_idf($row, $indexes)); //! don't use aggregation functions
                                echo '<tr' . odd() . '><td><input type="checkbox" name="check[]" value="' . $unique_idf . '" onclick="this.form[\'all\'].checked = false; form_uncheck(\'all-page\');">' . (count($select) != count($group) || information_schema($_GET["db"]) ? '' : ' <a href="' . htmlspecialchars($SELF) . 'edit=' . urlencode($_GET['select']) . '&amp;' . $unique_idf . '">' . lang('edit') . '</a>');
                                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 = "<i>NULL</i>";
-                                       } elseif (ereg('blob|binary', $fields[$key]["type"]) && !is_utf8($val)) { //! download link may be printed even with is_utf8
-                                               $val = '<a href="' . htmlspecialchars($SELF) . 'download=' . urlencode($_GET["select"]) . '&amp;field=' . urlencode($key) . '&amp;' . $unique_idf . '">' . lang('%d byte(s)', strlen($val)) . '</a>';
-                                       } else {
-                                               if (!strlen(trim($val, " \t"))) {
-                                                       $val = "&nbsp;";
-                                               } 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 = "<i>NULL</i>";
+                                               } elseif (ereg('blob|binary', $fields[$key]["type"]) && !is_utf8($val)) { //! download link may be printed even with is_utf8
+                                                       $val = '<a href="' . htmlspecialchars($SELF) . 'download=' . urlencode($_GET["select"]) . '&amp;field=' . urlencode($key) . '&amp;' . $unique_idf . '">' . lang('%d byte(s)', strlen($val)) . '</a>';
                                                } else {
-                                                       $val = nl2br(htmlspecialchars($val));
-                                                       if ($fields[$key]["type"] == "char") {
-                                                               $val = "<code>$val</code>";
+                                                       if (!strlen(trim($val, " \t"))) {
+                                                               $val = "&nbsp;";
+                                                       } 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 = "<code>$val</code>";
+                                                               }
                                                        }
-                                               }
-                                               
-                                               // 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 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;
                                                                }
-                                                               $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 "<td>$val";
                                        }
-                                       echo "<td>$val";
                                }
                                if ($backward_keys) {
                                        echo "<td>";
index ff082f32368c37d0dda9dc668f4f44a0abb49bc1..3da889ce320d7d535852511f6ae0ca083c0eeff2 100644 (file)
@@ -108,8 +108,9 @@ function adminer_navigation($missing) {
                        } else {
                                echo "<p>\n";
                                foreach ($table_status as $row) {
-                                       if (isset($row["Engine"])) { // ignore views
-                                               echo '<a href="' . htmlspecialchars($SELF) . 'select=' . urlencode($row["Name"]) . '">' . adminer_table_name($row) . "</a><br>\n";
+                                       $name = adminer_table_name($row);
+                                       if (isset($row["Engine"]) && strlen($name)) { // ignore views and tables without name
+                                               echo '<a href="' . htmlspecialchars($SELF) . 'select=' . urlencode($row["Name"]) . "\">$name</a><br>\n";
                                        }
                                }
                        }
index 442755f2f308ecfb5c36705a136352c1e090ebfb..1088aadf1c80ca4ee86689c3402f7a132649fcb1 100644 (file)
@@ -4,7 +4,6 @@ $translations = array(
        'Invalid credentials.' => 'Neplatné přihlašovací údaje.',
        'Server' => 'Server',
        'Save' => 'Uložit',
-       'SQL command' => 'SQL příkaz',
        'Logout' => 'Odhlásit',
        'Use' => 'Vybrat',
        'No tables.' => 'Žádné tabulky.',
@@ -53,7 +52,6 @@ $translations = array(
        '%d row(s) has been imported.' => array('Byl importován %d záznam.', 'Byly importovány %d záznamy.', 'Bylo importováno %d záznamů.'),
        'CSV Import' => 'Import CSV',
        'Import' => 'Import',
-       'Table structure' => 'Struktura tabulky',
        '(anywhere)' => '(kdekoliv)',
        'Editor' => 'Editor',
        'E-mail' => 'E-mail',
@@ -61,4 +59,11 @@ $translations = array(
        'Subject' => 'Předmět',
        'Send' => 'Odeslat',
        '%d e-mail(s) have been sent.' => array('Byl odeslán %d e-mail.', 'Byly odeslány %d e-maily.', 'Bylo odesláno %d e-mailů.'),
+       'Relations' => 'Vztahy',
+       'Maximum allowed file size is %sB.' => 'Maximální povolená velikost souboru je %sB.',
+       'Username' => 'Uživatel',
+       'Password' => 'Heslo',
+       'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
+       'Sessions must be enabled.' => 'Session proměnné musí být povolené.',
+       'Session expired, please login again.' => 'Session vypršela, přihlašte se prosím znovu.',
 );
index 9166163b90664d70a78ec0b2c279ea9af08f1c73..86848de494bf937861bb44fb635b95799dd31341 100644 (file)
@@ -23,6 +23,14 @@ class Adminer {
                return ($login == 'admin');
        }
        
+       function table_name($row) {
+               return htmlspecialchars($row["Comment"]);
+       }
+       
+       function field_name($fields, $key) {
+               return htmlspecialchars($fields[$key]["comment"]);
+       }
+       
 }
 
 include "./editor.php";