diff --git a/adminer/call.inc.php b/adminer/call.inc.php index 5d2e1475..cc4666a7 100644 --- a/adminer/call.inc.php +++ b/adminer/call.inc.php @@ -57,7 +57,7 @@ if ($in) { if (strlen($value) && ($field["type"] == "enum" || $field["type"] == "set")) { $value = intval($value); } - input($key, $field, $value); // param name can be empty + input($key, $field, $value, (string) $_POST["function"][$name]); // param name can be empty echo "\n"; } echo "\n"; diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php index 40ca0081..c94a824c 100644 --- a/adminer/edit.inc.php +++ b/adminer/edit.inc.php @@ -78,7 +78,8 @@ if ($fields) { ? (strlen($row[$name]) && ($field["type"] == "enum" || $field["type"] == "set") ? intval($row[$name]) : $row[$name]) : ($_POST["clone"] && $field["auto_increment"] ? "" : ($where ? $field["default"] : false)) ); - input($name, $field, $value); + $function = ($_POST["save"] ? (string) $_POST["function"][$name] : ($field[($where ? "on_update" : "default")] == "CURRENT_TIMESTAMP" ? "now" : ($value === false ? null : (isset($value) ? '' : 'NULL')))); + input($name, $field, $value, $function); if (isset($_GET["default"]) && $field["type"] == "timestamp") { if (!isset($create) && !$_POST) { //! disable sql_mode NO_FIELD_OPTIONS diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 4b34ffe6..791dca36 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -257,7 +257,7 @@ function hidden_fields($process, $ignore = array()) { } } -function input($name, $field, $value) { +function input($name, $field, $value, $function) { global $types; $name = htmlspecialchars(bracket_escape($name)); echo "