Adminer 4.2.0
Školení, která pořádám
Nová verze Admineru opravuje závažnou bezpečnostní chybu (XSS v přihlašovacím formuláři). Všem doporučuji okamžitou aktualizaci. Kromě toho přidává i několik novinek:
- V SQL příkazu lze nově omezit počet vypsaných řádek. Hlavní použití je v situaci, kdy se chci před exportem podívat na ukázku dat. Důležité je zmínit, že příkaz se provede celý a omezeno je jen zobrazení dat (Adminer nenastavuje
LIMIT
).
- Pokud je prohlížeč offline, tak Adminer nově zobrazuje chybu při AJAX požadavcích (např. Uložit a pokračovat). Zlepšeno je i hlášení při jiných AJAX chybách.
- Nově se nenastavuje komentář tabulky, pokud nebyl změněn.
- Při nastavování
auto_increment
se zachovává přesnost 64bitových čísel.
- Adminer nově nastavuje Referrer: never
<meta>
značku.
- Při komunikaci s MySQL se nově nastavuje kódování
utf8mb4
, pokud ho server podporuje. To podporuje mj. emoji.
- PostgreSQL nově podporuje materializované pohledy.
- Elasticsearch podporuje podmínky ve výpisu dat.
- Vznikla alfa verze pro Firebird.
- Přibyl dánský překlad.
Kromě toho bylo opraveno několik dalších chyb popsaných v changes.txt
.
Diskuse
Richard:
Neplánuje se funkce, že pokud selectem vyhledám nějaká data, bude tam stejně jako v defaultním vypisu tlačítko na upravení?
Jakub Vrána :
Všechny hodnoty z primárních klíčů jsou prolinkované na editaci záznamu. Odkaz upravit tam není, protože řádek může být sestaven z více tabulek.
trestná smradlavice:
Ahoj, Jakube,
Co když chci při výpisu/vyhledávání v tabulce použít operátor IN, jehož prvky jsou ne čísla, ale řetězce (navíc obsahující čárky)?
Adminer v tomto případě stringy v IN (v jednoduchých ani dvojitých uvozovkách) nepodporuje, hodí chybu: "Syntax error near ') LIMIT 50' at line 3"
Nechtěl bys použít tuto jednoduchou funkci?
<?php
function safe_in($input)
{
preg_match_all('~([-\+]?(0x[0-9a-f]+|(0|[1-9][0-9]*)(\.[0-9]+)?(e[-\+]?[0-9]+)?)|\'(\.|[^\'])*\'|"(\.|[^"])*")~i', $input, $matches);
return implode(',', $matches[0]);
}
?>
Jakub Vrána :
Apostrofy jsou podporované, syntaxe je:
'a','b'
Čárky nevadí.
trestná smradlavice:
Ahoj.
Zdá se, že máš pár nepřeložených textů (pro jiné jazyky než angličtina a čeština):
výpisu tabulky:
* "Modify" v levém horním rohu tabulky
* fieldset "Modify" dole
* fieldset "Selected (0)" dole
výpis databází
* "Size - compute" v záhlaví
pozměnit tabulku:
* "Default value" v záhlaví
Adam:
Zdravím,
hlásím drobný bug.
- Ve výpisu tabulky zaškrtnu jeden řádek, zaktivní se tlačítka "Upravit", "Klonovat" a "Smazat". Kliknu na "Klonovat" nebo "Upravit".
- Z nově načtené stránky jdu v prohlížeči zpět.
- Vrátil jsem se na výpis tabulky, kde jsou zaškrtnuté záznamy (prohlížeč si je zapamatoval ), ale tlačítka "Upravit", "Klonovat" a "Smazat" jsou neaktivní.
- odzkoušeno v aktuální verzi Chrome
Jakub Vrána :
Díky za upozornění, opravil jsem to. Checkboxy se zaškrtnou až po vyrenderování celého <form>, volání funkce jsem proto přesunul tam.
Lukáš Novotný:
Dobrý den,
v PostgreSQL když exportuji data z tabulky tak se mi logické hodnoty typu boolean exportují do dumpu jako 't' pro true a 'f' pro false, nevím zdali je to chyba, každopádně jsem na to chtěl jen upozornit, neb by bylo dle mého soudu kdyby se exportovali podle sql specifikace tj: true/false.
Hezký den...
trestná smradlavice:
Zdravím,
popíšu následující případ:
* nechám si vypsat tabulku
* u jednoho řádku kliknu na "upravit" (s Ctrl, do nového okna)
* tento řádek v prvním okně smažu
* v druhém okně kliknu na "Uložit"
* Adminer mi napíše "Položka byla aktualizována", což není pravda
Adam:
Podobný případ (přístup k mezitím smazanému řádku) se děje i při rychlé editaci (ctrl-klick). U textu na více řádků se zobrazí chyba z PHP.
trestná smradlavice:
Zdravím.
Neměl by u pohledu (view) zmizet odkaz "Nová položka"?
(protože do pohledu nelze vložit nový řádek?)
Jakub Vrána :
Pomocí triggerů to může povolit i pohled.
Martin:
Ahoj. Nevím, jak se pracuje se SOURCEFORGE, píši tedy tuto drobnost sem, třeba to někdo bude potřebovat a na SOURCEFORGE doplní. Nový Adminer má alfa plugin pro Firebird, ale ten padá při zobrazení jakékoli tabulky. Řešením je doplnit několik prázdných funkcí od řádku 311 do souboru firebird.inc.php :
...
function convert_field($field) {
}
function unconvert_field($field, $return) {
return $return;
}
function found_rows($table_status, $where) {
}
...
Martin:
A ještě
...
function explain($connection, $query) {
}
...
Explain se mi bohužel nepodařilo rozchodit, takže jsem jej jen "vypnul", aby běžné dotazy nezpůsobovaly chybu.
Hermiona Frodit:
Zdravím
Na PHP 7 (7.0.1 na win) Adminer hází tuto chybu:
Warning: Declaration of Min_DB::connect($N, $V, $G) should be compatible with mysqli::connect($host = NULL, $user = NULL, $password = NULL, $database = NULL, $port = NULL, $socket = NULL) in …\index.php on line 1171
Jakub Vrána :
Díky za upozornění, v Gitu už jsem to opravil a brzy vydám novou verzi.
Diskuse je zrušena z důvodu spamu.